我在这里查了一堆答案,但我仍然遇到了麻烦。
我有几十个表格和矩阵要分配,所以我想以自动方式实现它。但是当我运行这段代码时出错了。
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 :(得分: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'
)