我意识到这是一个非常基本的问题,但我想确保我做得对,所以我想要问一下确认。我在一个项目中有一个向量,我希望能够在另一个项目中使用,我想知道是否有一种简单的方法可以在一个表单中导出向量,我可以轻松地将其导入另一个项目。
到目前为止我弄清楚如何做到这一点的方法是将其转换为df,然后将df导出为csv,然后将其导入并解压缩为矢量形式,但这似乎不必要地复杂化。它只是一个简单的数字向量。
答案 0 :(得分:3)
有许多方法可以在R中读取和写入数据/文件。对于阅读,您可能需要查看:read.table
,read.csv
,readLines
,{{1 },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
和saveRDS
- 最佳做法/惯例是使用readRDS
扩展名;但请注意,加载对象稍微不同,因为.rds
不保存对象名称:
saveRDS
最后,saveRDS(x, file = "myvector_serialized.rds")
x <- readRDS("myvector_serialized.rds")
是一个较低级别的函数,因此一次只能保存一个对象。传统的saveRDS
方法允许您同时保存多个对象,但如果您在不同的项目/文件/脚本中重复使用相同的名称,则可能会成为一场噩梦......
答案 1 :(得分:1)
我同意saveRDS
是一个很好的方法,但我也推荐save
和save.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
个对象