R 在操作中使用字符串作为对象名称
我在编程方面太缺乏经验了,特别是R,所以如果我的代码不好,请原谅我 我试图解决的问题是将许多单独的csv文件加载到R中,稍微整理一下输入,对结果对象执行一些操作,并最终绘制这些操作的结果。我试图解决这个问题的方法是使用一个字符串向量来呼应对象名来调用有问题的对象。这是行不通的R 在操作中使用字符串作为对象名称,r,string,file,object,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, '.*(
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
}
下面是加载数据后无法工作的一段代码
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
}
其中的操作可以是plot命令或任意函数,如rbind、colnames,无论您喜欢什么
换句话说:我需要某种方法在向量文件中使用stringi,就像它是一个对象名一样。我如何才能做到这一点?解决方案:列表。谢谢你,皮埃尔
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。您尝试过列表而不是创建单独的变量吗?i、 e.lst[[i]]set?get在?assign iirc中被引用,只是作为旁注,因为pattern参数使用正则表达式,所以最好使用pattern=\\.csv$。R将把未替换的点理解为任何字符。最后一个$指定csv应该是文件名的结尾