从data.frame中提取命令以创建相同的df

时间:2014-08-20 10:59:15

标签: r dataframe

是否有任何R中的包/命令读取data.frame然后创建一个命令,可用于创建完全相同的data.frame而不加载数据,即data.frame的所有数据都必须存储在命令中?

e.g。如果有一个像这样的data.frame:

mydata <- data.frame(col1=c(1,2),col2=c(3,4))

我只是想得到这样的命令,即读取“mydata”会导致右侧的命令。

BR 费边

2 个答案:

答案 0 :(得分:2)

dput函数“将R对象的ASCII文本表示写入文件或连接”,并且尽可能靠近右侧。它实际上包含有关对象结构的更多详细信息,如下所示:

> dput(mydata)
structure(list(col1 = c(1, 2), col2 = c(3, 4)), .Names = c("col1", 
"col2"), row.names = c(NA, -2L), class = "data.frame")

答案 1 :(得分:1)

您还可以使用enquote,将mydata变回未评估的call。然后可以使用eval评估它。

> ( e <- enquote(mydata) )
# quote(list(col1 = c(1, 2), col2 = c(3, 4)))
> eval(e)
#   col1 col2
# 1    1    3
# 2    2    4
> identical(eval(e), mydata)
# [1] TRUE