如何将R对象的定义导出为纯文本,以便其他人可以重新创建它?

Dan*_*ein 13 export structure r definition

假设您在R中有此数据,并且您想在stackoverflow上发布一个问题.对于其他人来说,如果他们能够拥有您的对象(数据框,矢量等)的副本,那将会很好.

假设您的数据位于名为site.data的数据框中

> site.data
    site year     peak
1  ALBEN    5 101529.6
2  ALBEN   10 117483.4
3  ALBEN   20 132960.9
8  ALDER    5   6561.3
9  ALDER   10   7897.1
10 ALDER   20   9208.1
15 AMERI    5  43656.5
16 AMERI   10  51475.3
17 AMERI   20  58854.4
Run Code Online (Sandbox Code Playgroud)

如何打包它以便用户可以完全按照您的方式重新创建数据?

您希望在没有人下载文本文件并导入它的情况下执行此操作.

(注意:这些数据来自REvolutions博客的一个例子)

Dan*_*ein 19

dput命令写入ASCII表示.如果不是文件名,而是放入"",它会将其写入控制台

> dput(site.data,"")
structure(list(site = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 
3L, 3L), .Label = c("ALBEN", "ALDER", "AMERI"), class = "factor"), 
    year = c(5L, 10L, 20L, 5L, 10L, 20L, 5L, 10L, 20L), peak = c(101529.6, 
    117483.4, 132960.9, 6561.3, 7897.1, 9208.1, 43656.5, 51475.3, 
    58854.4)), .Names = c("site", "year", "peak"), row.names = c(1L, 
2L, 3L, 8L, 9L, 10L, 15L, 16L, 17L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

只需复制结构并将其放在示例代码中的"site.data ="之后,人们将能够完全按照您的方式重新创建数据框.


Ken*_*ams 6

实际上,在您的原始示例中,您以列格式粘贴数据的方式可以正常工作.我只是从网页上复制了你的文字,并做了这个(使用OS X,所以我有很好的"粘贴"命令):

> site.data <- read.table(pipe("pbpaste"))
Run Code Online (Sandbox Code Playgroud)

对于玩具数据,例如作为测试用例发布的内容,这通常是最好的方法.dggoldst说,为了精确,dput()是好的.