这是一个更大的脚本的一部分——长话短说,R 的输入是以分号分隔的路径,指向我的文本文件的位置。所有文本文件的格式如下:
文件1:
Name1 3
Name2 4
Name3 55
文件2:
Name1 4
Name2 33
Name3 102
文件3:
Name1 12
Name2 2
Name5 33
这是一个例子:
cond1<-'/User/Desktop/File1;/User/Desktop/File2;/User/Desktop/File3'
#separates the elements
normalList<-strsplit(cond1, ";")
#now you can access each element
nor<-unlist(normalList)
baseNorm<-vector("list", length(nor))
dirNorm<-vector("list", length(nor))
pathNorm<-vector("list", length(nor))
Norm<-vector("list", length(nor))
new<-vector("list", length(nor))
for (i in 1:length(nor))
{
baseNorm[[i]] <- basename(nor[i])
dirNorm[[i]]<-dirname(nor[i])
pathNorm[[i]]<-paste(dirNorm[[i]], baseNorm[[i]], sep="/")
Norm[[i]]<-read.delim(pathNorm[[i]], header=F)
}
在此处的示例中,R 的输入包含 3 个文件-但是我需要脚本足够灵活,以便它可以处理传递的任意数量的文件,因此尝试使用 for 循环。BIG IDEA 是:1)获取所有文件的特定文件的路径。2) 将文本文件加载到 R 中 3) 创建一个包含公共第一列(Name1、Name2、Name3)的新文件。这个新文件中所有接下来的列对应于 File1、File2、File3、File4 等的第 2 列。本质上,我需要创建一个主文件:
Name1 3 4 55
Name2 4 33 102
Name3 12 2 33
我敢肯定,即使对于我已经拥有的代码,也有一个更简单的解决方案,因为对于所有 [[]],我什至不知道如何开始编写创建主文件的函数。我刚开始使用 R,所以任何输入都是宝贵的学习经验,在此先感谢您!