【问题标题】:Loading a dput into R using a script使用脚本将 dput 加载到 R 中
【发布时间】:2015-08-24 14:42:29
【问题描述】:

在创建可重现的示例时,我经常想使用put() 输出data.frame 或类似的:

my_data <- structure(list(pr_id = c("X1626", "X1689", "X1818", "X2044", 
"X1572"), t1 = c("PID", "WRC", "PID", "PID", "PID"), t2 = c("PRO", 
"DEC", "ECV", "PRO", "PRO"), t3 = c("REF", "", "ECV", "SMK", 
"REF"), t4 = c("ECV", "", "ECV", "SMK", "SMK"), t5 = c("SMK", 
"", "ECV", "ECV", "SMK"), t6 = c("SMK", "", "SMK", "", "TEA"), 
t7 = c("DEC", "", "DEC", "", "SMK"), t8 = c("", "", "REF", 
"", "SMK"), t9 = c("", "", "SMK", "", "TEA"), t10 = c("", 
"", "", "", "SMK"), t11 = c("", "", "", "", "SMK"), t12 = c("", 
"", "", "", "SMK"), t13 = c("", "", "", "", "SMK"), t14 = c("", 
"", "", "", "DEC")), .Names = c("pr_id", "t1", "t2", "t3", 
"t4", "t5", "t6", "t7", "t8", "t9", "t10", "t11", "t12", "t13", 
"t14"), row.names = c(NA, 5L), class = "data.frame")

但是,当我尝试加载数据时,它会要求我提供文件:

my_data_loaded <- dget(my_data)

Error in parse(file = file, keep.source = keep.source) : 
  'file' must be a character string or connection

如何轻松创建dput,然后再次加载它以创建可重现示例的脚本?我想避免将其保存为文件,而只是将整个内容作为脚本运行。

【问题讨论】:

  • my_data 已经是您尝试加载的实际对象。如果您想将某些内容保存为文件并加载(而不是作为活动 R 对象),您可以执行 save(my_data, "my_data.rdata")load("my_data.rdata")
  • ...或者,要使用dputdget,必须遵循文档并实际使用dput 将对象发送到文件,而不是工作区中的对象。

标签: r reproducible-research


【解决方案1】:

您的事情过于复杂了——请参阅dput() 的帮助和示例。

它的输出被复制到一个新的任务中。可以这么简单:

R> ## let us create an object x
R> x <- c(a=1.23, b=42.3)
R> x
    a     b 
 1.23 42.30 
R> dput(x)
structure(c(1.23, 42.3), .Names = c("a", "b"))
R> 
R> ## now use the dput() output in an assignment
R> y <- structure(c(1.23, 42.3), .Names = c("a", "b"))
R>
R> ## and lo and behold:
R> identical(x, y)
[1] TRUE
R> 

【讨论】:

    猜你喜欢
    • 2015-05-23
    • 2012-11-18
    • 2014-01-27
    • 1970-01-01
    • 2020-08-20
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    相关资源
    最近更新 更多