2009-08-12 46 views
13

假設你在R中有這個數據,並且你想在stackoverflow上發佈一個問題。對於其他人最好的幫助你,如果他們可以有你的對象的副本(數據框,矢量等)來處理它,那將是非常好的。如何將R對象的定義導出爲純文本,以便其他人可以重新創建它?

比方說,你的數據是在一個名爲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 

數據幀你怎麼包裝起來,使用戶可以重新創建數據正是你有嗎?

您想要在沒有人下載文本文件並將其導入的情況下執行此操作。

(注意:這些數據由轉博客的一例子集)

+0

非常聰明,在這裏得到這個。 – 2009-08-12 18:32:44

回答

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

僅複製的結構,並把它經過「site.data文件名=」如果可以重新創建數據完全像你一樣。

6

實際上,在您的原始示例中,您以列格式粘貼數據的方式工作得很好。我只是複製從網頁的文本,這樣做(使用OS X,所以我有很好的「粘貼」命令):

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

對於喜歡的東西貼作爲測試用例玩具的數據,這往往是最好的方法。 dggoldst說,爲了更精確,dput()是很好的。

3

另一種類似於Ken的方法是使用剪貼板(在windows和linux上)。我會複製你的代碼並運行

> 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 
相關問題