R中的字符串变量:错误:无法打开文件

时间:2016-05-14 13:45:57

标签: 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了。这里有什么想法吗?

非常感谢。

2 个答案:

答案 0 :(得分:0)

你快到了!查看?parse,第一个参数是file=,您在哪里提交文件但不是您准备的字符串。 您确实使用parse参数调用text

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

答案 1 :(得分:0)

您为read.csv提供的文件路径可能存在问题。注意“/”和“\”,因为Windows用“\”分隔目录,而Unix使用“/”。也许您应该尝试从资源管理器或命令行中复制粘贴目录的路径。

更可读的方法是使用setwd('path')更改工作目录,并确保您有正确的路径。然后你可以简单地写read.csv('wiot2009'