我意识到这是一个非常基本的问题,但我想确保我做得正确,所以我想问只是为了确认。我在一个项目中有一个向量,我希望能够在另一个项目中使用它,我想知道是否有一种简单的方法可以以一种可以轻松将其导入到另一个项目的形式导出该向量。
到目前为止,我想出的方法是将其转换为 df,然后将 df 导出为 csv,然后导入并将其解压为矢量形式,但这似乎不必要地复杂。它只是一个简单的数字向量。
在 R 中读取和写入数据/文件的方法有很多种。要阅读,您可能需要查看:read.table、read.csv、readLines、source、dget、load、unserialize、 和readRDS。对于写作,您需要查看write.table、writeLines、dump、dput、save、serialize和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
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用saveRDSand readRDS-- 最佳实践/惯例是使用.rds扩展名;但请注意,加载对象略有不同,因为saveRDS不保存对象名称:
saveRDS(x, file = "myvector_serialized.rds")
x <- readRDS("myvector_serialized.rds")
Run Code Online (Sandbox Code Playgroud)
最后,saveRDS是一个较低级别的函数,因此一次只能保存一个对象。传统save方法允许您同时保存多个对象,但如果您在不同的项目/文件/脚本中重复使用相同的名称,这可能会成为一场噩梦......