2015-08-24 36 views
0

創建一個重複的例子,當我經常要輸出加載dput爲R一data.frame或類似使用put()使用腳本

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,然後加載回再次以創建一個腳本這是一個可重複的例子嗎?我想避免將它保存爲一個文件,只需將整個事件作爲腳本運行即可。

+2

'my_data'已經是您要加載的實際對象。如果你想把某些東西保存爲一個文件並加載它(而不是一個活動的R對象),你可以執行'save(my_data,「my_data.rdata」)和'load(「my_data.rdata」)' –

+2

.. .or,要使用'dput'和'dget',必須遵循文檔並實際使用'dput'將對象發送到文件中,而不是工作區中的對象。 – joran

回答

2

您過於複雜的事情 - 請參閱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>