假设在工作空间中已经定义了一个对象:
a <- round( rnorm(10) )
[1] 0 -1 -1 -1 -1 0 2 1 1 1
Run Code Online (Sandbox Code Playgroud)
如何以编程方式生成创建的命令a?
例如,我想a在我的工作空间中使用生成以下字符串codeToCreateA:
codeToCreateA <- "a <- c( 0, -1, -1, -1, -1, 0, 2, 1, 1, 1)"
Run Code Online (Sandbox Code Playgroud)
我对一般情况感兴趣,在这种情况下a可以是任何类别的对象,包括矢量,列表或数据框。
dput(A)返回对象的结构A。然后它可用于A直接重新创建,或与其他人共享用于重新创建单个对象的代码。
我已经在向量、数据框和列表上对其进行了测试。
这是数据平板电脑(也是类数据框)的示例:
a <- structure(list(A = c("a", "a", "a", "b", "b"), B = 1:5),
.Names = c("A", "B"), row.names = c(NA, -5L),
class = c("data.table", "data.frame" ),
.internal.selfref = <pointer: 0x22f5938>)
Run Code Online (Sandbox Code Playgroud)
请注意,在执行此代码之前需要删除最后一个参数。IE
b <- structure(list(A = c("a", "a", "a", "b", "b"), B = 1:5),
.Names = c("A", "B"), row.names = c(NA, -5L),
class = c("data.table", "data.frame" ) )
Run Code Online (Sandbox Code Playgroud)
对上述问题的评论有助于准备此答案。