2015-08-19 56 views
0

我意識到這是一個非常基本的問題,但我想確保我做得對,所以我想問一下才能確認。我在一個項目中有一個向量,我希望能夠在另一個項目中使用該向量,並且我想知道是否有一種簡單的方式將向量導出爲可以輕鬆地將其導入另一個項目的窗體。如何在R中導出/導入向量?

我想出瞭如何做到目前爲止的方式是將其轉換爲df,然後將df導出爲csv,然後將其導入並解壓縮爲向量形式,但似乎不必要的複雜。這只是一個簡單的數字向量。

+1

看看?保存 – user1357015

回答

3

有許多的方式來讀寫數據R. /文件的閱讀,你可能想看看:read.tableread.csvreadLinessourcedgetloadunserializereadRDS。爲了寫作,你會想看看write.table,writeLines,dump,dput,save,serializesaveRDS

x <- 1:3 
# [1] 1 2 3 
save(x, file = "myvector.rda") 

# Change x to prove a point. 
x <- 4:6 
x 
# [1] 4 5 6 

# Better yet, we could remove it entirely 
rm(x) 
x 
# Error: object 'x' not found 

# Now load what we saved to get us back to where we started. 
load("myvector.rda") 
x 
# [1] 1 2 3 

或者,你可以使用saveRDSreadRDS - 最佳實踐/慣例是使用.rds擴展;但是請注意,在加載對象是略有不同作爲saveRDS不保存對象名稱:

saveRDS(x, file = "myvector_serialized.rds") 
x <- readRDS("myvector_serialized.rds") 

最後,saveRDS是一個低級別的功能,因此只能保存一個對象的時間。傳統save方法可以讓你在同一時間保存多個對象,但可以成爲一個噩夢,如果你重複使用在不同的項目/文件/腳本的同名...

1

我同意saveRDS是一個好辦法去,但我也推薦savesave.image功能,我將在下面演示。

# save.image 
x <- c(5,6,8) 
y <- c(8,9,11) 
save.image(file="~/vectors.Rdata") # saves all workspace objects 

或可替代選擇要

x <- c(5,6,8) 
y <- c(8,9,11) 
save(x, y, file="~/vectors.Rdata") # saves only the selected objects 

一個優點保存到使用.Rdata超過.Rda(小的)的對象是,你可以在文件管理器的設備上點擊(即窗口),它將被加載到R環境中。這不適用於.Rda對象在窗口說Rstudio