阅读与阅读绑定不同数量的文件

时间:2014-10-24 10:07:24

标签: r loops

我必须写一个R脚本,我想在不同的时间加载不同数量的文件。将文件加载到数据帧中,并提取数据帧的某些列。然后将列与cbind函数合并。我的问题是我不知道如何适应不时加载的不同数量的文件,因为一次可能有3个向量cbind或另一个时间有5个向量。那么我怎样才能给cbind一些向量,这样当它没有得到所有向量时它就不会输出错误?当我给它一个固定的数字时会发生这种情况。

raw1 <- read.table()
raw2 <- read.table()
vec1 <- raw1[,2]
vec2 <- raw2[,2]
cbind(vec1,vec2,vec3)

我知道我最好写一些交互式文件,例如tcltk对话框和某种循环。也许你可以向我提供一些关于如何构建有效循环的想法。

1 个答案:

答案 0 :(得分:1)

您可以将数据框存储在列表中,然后使用do.call()将它们绑定。这是cbind任意长度列表的好方法。

datalist <- lapply(filenames, function(i) read.table(i)[, 2])
# ... where filenames are the names of the files you want to read, and 
# passing any additional parameters to read.table that are needed 
# Then cbind all the entries of datalist 
do.call(cbind, datalist)