是否有任何R中的包/命令读取data.frame然后创建一个命令,可用于创建完全相同的data.frame而不加载数据,即data.frame的所有数据都必须存储在命令中?
e.g。如果有一个像这样的data.frame:
mydata <- data.frame(col1=c(1,2),col2=c(3,4))
我只是想得到这样的命令,即读取“mydata”会导致右侧的命令。
BR 费边
答案 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