2016-05-14 42 views
0

我已经检查了一堆答案,但我仍然遇到麻烦。字符串变量在R:错误:无法打开文件

我有几十个表和矩阵分配,所以我想实现它在一个自动化的方式。但是当我运行这段代码时,我遇到了错误。

a <- paste("wiot_table_",substr(as.character(year),3,4),sep="") 
assign(a,read.csv("/Users/Dreamland/Desktop/Replication_JEP/WIOD\ database\ 1995-2011/2009/wiot2009.csv",header=F, 
          colClass=c(rep("character",2),rep("num.with.commas",1641)))) 
mat <- paste("matrix_",substr(as.character(year),3,4),sep="") 
eval(parse(paste(mat,"<-as.matrix(",a,"[1:1400,3:1402])",sep=""))) 

误差

In file(filename, "r") : 
    cannot open file 'matrix_09<-as.matrix(wiot_table_09[1:1400,3:1402])': No such file or directory 

我已经检查paste(mat,"<-as.matrix(",a,"[1:1400,3:1402])",sep="")wiot_table_09和他们都有如我预期值,分别是

"matrix_09<-as.matrix(wiot_table_09[1:1400,3:1402])" 

和数据帧。

由于我的工作很复杂,我不能再在这里使用assign了。这里的任何想法?

非常感谢。

回答

0

你快到了!看看?parse,第一个参数是file=,你没有提交一个文件,而是你准备的字符串。 你那样调用parsetext说法:

eval(parse(text=paste(mat,"<-as.matrix(",a,"[1:1400,3:1402])",sep=""))) 
+0

哦,男人,这绝不会发生在我身上,非常感谢! –

0

有可能是与你提供给read.csv文件的路径问题。由于Windows使用“\”分隔目录,而Unix使用“/”,因此请注意“/”和“\”。也许你应该尝试从资源管理器或命令行复制粘贴目录的路径。

更可读的方法是将工作目录更改为setwd('path')并确保您拥有正确的路径。那么你可以简单地写read.csv('wiot2009'

+0

我认为这不是擦的地方〜 –

相关问题