【发布时间】:2014-04-29 15:23:59
【问题描述】:
我希望能够将复杂的 R 对象转换为字符串,然后再转换回原始对象。
为简单起见,假设我有一个列表:
lt <- list(a=1:10,b=data.frame(a=10, b=1:5))
lt
如果我想在屏幕上看到这个,我会执行以下操作:
dput(lt)
但是,以下方法不起作用:
x <- dput(lt)
x
x <- dput(lt,control="showAttributes")
x
因为 x == lt 的值。
根据之前的尝试,我尝试了几件事:例如deparse
x <- deparse(lt)
x
有效,但反转无效:
eval(parse(x))
以下给出错误:
dump(lt)
根据this advice,我可以让它工作:
x <- capture.output(dput(lt))
x <- paste(x,collapse="",sep="")
x
dget(textConnection(x))
但是,我想知道第一种方法有什么问题(使用 eval(parse(x)))。 非常感谢任何帮助!
【问题讨论】:
-
为什么要重构它?原始对象
lt仍然存在。