如何在R中导出/导入向量?

时间:2015-08-19 18:24:03

标签: r

我意识到这是一个非常基本的问题,但我想确保我做得对,所以我想要问一下确认。我在一个项目中有一个向量,我希望能够在另一个项目中使用,我想知道是否有一种简单的方法可以在一个表单中导出向量,我可以轻松地将其导入另一个项目。

到目前为止我弄清楚如何做到这一点的方法是将其转换为df,然后将df导出为csv,然后将其导入并解压缩为矢量形式,但这似乎不必要地复杂化。它只是一个简单的数字向量。

2 个答案:

答案 0 :(得分:3)

有许多方法可以在R中读取和写入数据/文件。对于阅读,您可能需要查看:read.tableread.csvreadLines,{{1 },sourcedgetloadunserialize。对于写作,您需要查看readRDSwrite.tablewriteLinesdumpdputsaveserialize

saveRDS

或者,您可以使用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 saveRDS - 最佳做法/惯例是使用readRDS扩展名;但请注意,加载对象稍微不同,因为.rds不保存对象名称:

saveRDS

最后,saveRDS(x, file = "myvector_serialized.rds") x <- readRDS("myvector_serialized.rds") 是一个较低级别的函数,因此一次只能保存一个对象。传统的saveRDS方法允许您同时保存多个对象,但如果您在不同的项目/文件/脚本中重复使用相同的名称,则可能会成为一场噩梦......

答案 1 :(得分: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环境中。这不适用于Windows上的Rstudio中的.Rda个对象