自动生成命令以重现工作空间中的对象

Bob*_*bby 5 r

假设在工作空间中已经定义了一个对象:

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可以是任何类别的对象,包括矢量,列表或数据框。

Bob*_*bby 5

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)

对上述问题的评论有助于准备此答案。