为什么我得到"错误的未被插入符号"

时间:2014-04-08 12:19:23

标签: r

我正在尝试阅读许多csv文件
当我读取其中一个不使用值的文件时,它的工作原理

我有一个名为list.of.files的文件列表,如下所示:

#[1] "2013ARI.EVN" "2013ATL.EVN" "2013CHN.EVN" "2013CIN.EVN" "2013COL.EVN"
#[6] "2013LAN.EVN" "2013MIA.EVN" "2013MIL.EVN" "2013NYN.EVN" "2013PHI.EVN"
#[11] "2013PIT.EVN" "2013SDN.EVN" "2013SFN.EVN" "2013SLN.EVN" "2013WAS.EVN"

所以我可以制作一个for循环我测试assign()就像这样

name<-substr(list.of.files[1],1,7)
assign(name,read.csv(paste(name,".csv",sep="")))
summary(ARI2013)

#Error in summary(ARI2013) : object 'ARI2013' not found

我分配方式有什么问题?

1 个答案:

答案 0 :(得分:1)

assign创建一个R对象,其名称作为字符串传递。您已将2013ARI作为输入传递,但请参阅ARI2013中的summary。您看到的错误仅仅是因为您没有使用正确的对象名称。这里的第二个问题是你用一个数字开始你的变量名,这在R中不能很好地工作。你可以使用get来获得对象:

> substr("2013ARI.EVN", 1, 7)
[1] "2013ARI"
> assign(substr("2013ARI.EVN", 1, 7), 1)
> summary(get("2013ARI"))
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      1       1       1       1       1       1 

请注意,使用assign创建对象组并不是R中的最佳方法。我会将csv文件集放在列表中:

list_of_files = sprintf("%s.csv", substr(c("2013ARI.EVN", "2013ATL.EVN"), 1, 7))
list_of_data_frames = lapply(list_of_files, read.csv)