How to export the definition of an R object to plain text so that others can recreate it?

前端 未结 3 1925
情书的邮戳
情书的邮戳 2020-12-23 23:22

Let\'s say you have this data in R, and you want to post a question on stackoverflow. For others to best help you, it would be nice if they could have a copy of your object

相关标签:
3条回答
  • 2020-12-23 23:57

    The dput command writes an ASCII representation. If instead of a filename you put "" it will write it to the console

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

    Just copy the structure and put it after "site.data=" in your example code and people will be able to recreate the data frame exactly as you have it.

    0 讨论(0)
  • 2020-12-23 23:58

    Actually, in your original example, the way you've pasted your data in column format works just fine. I just copied your text from the web page, and did this (using OS X so I have the nice "paste" command):

    > site.data <- read.table(pipe("pbpaste"))
    

    For toy data like something posted as a test case, this is often the best approach. To be extra-precise, dput() is good, as dggoldst says.

    0 讨论(0)
  • 2020-12-24 00:11

    Another way, similar to Ken's is using the clipboard (on windows, and possibly linux). I would copy your code and run

    > site.data <- read.table("clipboard", header=T)
    > 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
    
    0 讨论(0)
提交回复
热议问题