Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在操作中使用字符串作为对象名称_R_String_File_Object - Fatal编程技术网

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, '.*(

我在编程方面太缺乏经验了,特别是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
}
下面是加载数据后无法工作的一段代码

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应该是文件名的结尾