从列表中的多个数据框中提取一个点

时间:2019-06-06 05:01:44

标签: r dataframe lapply multiple-files

我正在尝试从1000个数据帧中隔离同一位置(同一列和同一行)中的一个点。每个数据框都有相同的8列,行数不同(至少一个),而我现在只需要第一行的点即可。这些数据帧在使用lapply函数创建的列表中。这是我的操作方式:

list <- list.files(pattern=".aei")
files <- lapply(list, read.table, ...)

现在,我需要从第1行和第2列的每个数据帧中隔离点。我能够使用以下代码对一个数据帧执行此操作:

a <- data.frame(files[1])[1,2]

但是,我无法将其用于所有1000个文件。我已经尝试了几段代码,例如:

all <- data.frame(files[1:999])[1,2]
all<- lapply(files data.frame)[1,2]
all<- lapply(files, data.frame[1,2])

甚至两个不同的for循环:

for(i in files [[1:999]]) {
    list(files[1:999])[1,2]
}
for(i in files [[1:999]]) {
    data.frame(files[1:999])[1,2]
}

这些方法是否正确?还是完全错误?我已经坚持了一段时间,似乎在其他任何想法上都陷入了死胡同。请让我知道您可能有任何建议!

1 个答案:

答案 0 :(得分:2)

我们可以使用匿名函数(lambda函数)来提取元素

lapply(files, function(x) x[1,2])

read.table已经给出了data.frame,因此不需要用data.frame换行