使用循环对多个文本文件进行子设置

时间:2019-06-25 16:57:21

标签: r

我有许多相同的文本文件,具有3列和141行数据,用制表符分隔。我想使用循环将它们全部读取到r中,但是我只想读取第二列(最好仅读取49:141行)。我无法使代码仅在1列中读取才能工作,但是没有子设置,它将可以工作,并且将读取整个文件。它读取每个文件作为单独的数据帧。似乎在执行循环时,通常不会使用子设置的符号,因为每个文件都是一个单独的数据帧。

在下面的代码中,我得到了错误:TEST2 [49:141,2]中的错误:尺寸错误。

files<-list.files()
TEST2 <- lapply(files[49:141, 2], function(fn)read.table(fn,header=FALSE, sep="", fill = TRUE))

1 个答案:

答案 0 :(得分:0)

files是您要迭代的对象。您不能以尝试的方式使用索引。而是尝试这样的事情:

files <- list.files()

my_read_function <- function(x) {
  data <- read.table(x, header=FALSE, sep="", fill = TRUE)
  return(data[49:141, 2])
}

lapply(files, my_read_function)