如何访问列表中数据框的位置

How to access positions of data frames within a list

我按以下方式列出了 data.frames:

dflist <- list()

for (i in 1:24) {
  name <- paste("tp",i,sep="")
  assign(name, read.csv(paste(i, "c.csv", sep=""), sep  = ";", header = TRUE))
  dflist[[i]] <- name
}

列表如下所示:

> dflist
[[1]]
[1] "tp1"

[[2]]
[1] "tp2"

和 data.frames 这样的:

> tp1
   X..     X1     X2     X3     X4     X5     X6     X7     X8     X9    X10    X11    X12
1    A 0.0463 0.0503 0.0478 0.0499 0.0501 0.0499 0.0495 0.0505 0.0491 0.0520 0.0492 0.0509
2    B 0.0503 0.0508 0.0495 0.0494 0.0498 0.0501 0.0497 0.0492 0.0496 0.0497 0.0495 0.0496

我现在如何访问我的 data.frames 的特定元素?

dflist[[1]][1,1]

不工作.. 我搜索了其他答案,但不知何故,我没有得到经常建议的 'lapply' 功能。

首先不要使用 assign。如果你这样做,你将需要 get.

get(dflist[[1]])[1, 1]

这充其量是丑陋的。并且你将有24个df在全局环境中徘徊供你处理。
更好的方法是使用 lapply 并将它们全部存储在您的 dflist 中,而不仅仅是他们的名字。

dflist <- lapply(1:24, function(i){
        read.csv(paste(i, "c.csv", sep=""), sep  = ";")
})

names(dflist) <- paste("tp", 1:24, sep="")

dflist$tp1[1, 1]

此外,您有 sep = ";" 是因为它来自小数点标记为逗号的国家吗?如果是这样,您可以使用其他版本的函数来读取数据,read.csv2。您不必手动设置它。 (他们都假定 header = TRUE 作为默认值。)