自动生成命令以在工作区中重现对象

时间:2016-07-18 20:01:21

标签: r

假设已在工作区中定义了一个对象:

a <- round( rnorm(10) )

[1]  0 -1 -1 -1 -1  0  2  1  1  1

如何以编程方式生成创建a的命令?

例如,我想在工作区中使用a来生成以下字符串codeToCreateA

codeToCreateA <- "a <- c( 0, -1, -1, -1, -1,  0,  2,  1,  1,  1)"

我对一般情况很感兴趣,其中a可以是任何类对象,包括向量,列表或数据框。

1 个答案:

答案 0 :(得分:3)

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>)

请注意,在执行此代码之前,需要删除最后一个参数。即。

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" ) )

上述问题的评论有助于准备这个答案。