[英]Save object to RData using eval(parse(text=…)))
I am able to write an object to a.csv file using eval(parse(text=...)))
but cannot save to an.RData file.我可以使用
eval(parse(text=...)))
将 object 写入 a.csv 文件,但无法保存到 .RData 文件。 Why is that?这是为什么? Any suggested workarounds?
任何建议的解决方法?
# Assign value to variable name (in my function this variable name changes)
varName <- "test"
assign(x=varName,value=mtcars)
# Check variable exists
head(test)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
# Save .csv
write.csv(eval(parse(text = varName)), file=paste0(varName, ".csv") # works
# Save .RData
save(eval(parse(text = varName)), file=paste0(varName, ".RData")) # doesn't work
> Error in save(eval(parse(text = varName)), file = paste0(varName, ".RData")) :
object ‘eval(parse(text = varName))’ not found
The answer, aside from fortune(106)
is to investigate: execute答案,除了
fortune(106)
是调查:执行
eval(parse(text = varName))
to see what class the returned object is.查看返回的 object 是什么 class 。 Compare with what
save
requires.与
save
所需的内容进行比较。
That will show, as the other comments and answer does/did that you need a character object for that argument in save
.这将表明,正如其他评论和答案所做/所做的那样,您需要一个字符 object 用于
save
中的该参数。
I think the easiest way to do this is to use我认为最简单的方法是使用
save(list = varName, file = paste0(varName, ".RData"))
It saves having to get
(or mget
) the variable(s), as save
effectively does it for you.它不必
get
(或mget
)变量,因为save
有效地为您完成了它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.