在操作中使用字符串作为对象名称

时间:2015-10-08 12:29:33

标签: r string file object

我在编程方面一般都缺乏经验,R具体如此,如果我的编码不好,请原谅我。

我试图解决的问题是将许多单独的csv文件加载到R中,稍微整理输入,对结果对象执行一些操作,并最终绘制这些操作的结果。我尝试解决它的方法是使用一个字符串向量来回显对象名称来调用有问题的对象。这不起作用。

下面是一些加载数据后无效的代码。

files=list.files('foldername',pattern="*.csv",full.names=F) #Make a list of files
filen=str_extract(files, '.*(?=\\.csv)') #Pretty the file names for object names

for (i in 1:length(files)){
   assign(paste(filen[i]),read.csv(paste(files[i]))) #Load the files
   as.object(filen[i])=as.object(filen[i])[,order(names(ATCN_21))] # pseudocode line
   as.object(filen[i])=operation(as.object(filen[i]),parameter 1, parameter 2, etc) #More pseudocode
}

其中操作可能是绘图命令或任意函数,如rbind,colnames,无论你想要什么。

换句话说:我需要一些方法在vector filen 中使用字符串 i ,就像它是一个对象名一样。怎么能我这样做了?

1 个答案:

答案 0 :(得分:0)

解决方案:列表。 (谢谢你,皮埃尔)

files=list.files('foldername',pattern="\\.csv$",full.names=F) #Make a list of files
filen=str_extract(files, '.*(?=\\.csv)') #Pretty the file names for object names

list=lst()


for (i in 1:length(files)){
   lst[[i]]=read.csv(paste(files[i]))#Load the files
   names(lst)[i]<-filen[i] #Name the entries
   lst[[i]]=lst[[i]][,order(names(lst[[i]]))]

   lst[[i]]=operation(foo)
}

感谢您帮助一个无能为力的n00b。