我正在尝试阅读许多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
我分配方式有什么问题?
答案 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)