-1

假设我有 5 个数据库,名为data1- data5。我基本上想创建一个打印前 10 行数据的循环。在我天真的想法中,代码应该是这样的:

for (i in 1:5){
  print(head(data[i]))
}

那是行不通的。这样做的正确方法是什么?如何定义[i]不同数据库的“索引”变量?

4

2 回答 2

1

最好将这些对象放在一个列表中并[[用来引用它们。但是,如果您必须为对象使用单独的名称,那么您需要解析它们并评估结果表达式

这是您可以效仿的示例。为简洁起见,它打印数字对象的值而不是“数据库”的头部。

data1 <- 1; data2 <- 2; data3 <- 3
for (i in 1:3) {
  print(eval(parse(text=paste0("data", i))))
}
于 2021-08-04T18:33:57.873 回答
1

另一种方法是使用get函数:

for (i in 1:5){
  tmp <- get(paste0("data", i))  
  ## Assigns the data to the variable tmp - just like tmp <- data1/data2/data3 etc
  print(head(tmp))
}
于 2021-08-04T18:41:10.347 回答