假设您有一个数据对象保存到rds。有没有一种方法可以附加(如c()
或rbind
,cbind
)到保存的对象而不显式加载原始?假设该对象将具有相同的类型或具有相同的属性?追加到序列化对象
# psuedo-code
a_list <- list(x = c(1,2,3,4,5,6),y = c(6,5,4,3,2,1))
saveRDS(a_list, "path/to/file.rds")
# empty workspace
a_new_lsit <- list(z = c(3,2,1,6,5,4))
appendRDS(a_new_list, "path/to/file.rds")
澄清,a_list
不会在工作区中。这就是这个问题的要点 - 我想附加到一个序列化的对象,而不显式加载它。
有一些相关的信息[这里](https://cran.r-project.org/doc/manuals/r-release/R-ints.html#Serialization-Formats)。它看起来像R在序列化文件的前十位左右对某些数据(长度,对象类型,对象属性)进行编码,因此推测可能会追加另一个对象(“绑定”,“绑定”等)意味着改变原始文件中的那些“元”位。 – nrussell
如果你在你的系统上有合适的工具,你可以尝试[玩](https://gist.github.com/nathan-russell/1e5ee66bd767f09088da),但即使在最简单的情况下(原子向量),追加对象正如你在你的问题中描述的那样,涉及的不仅仅是简单的附加文件,所以我猜测创建这样一个函数是不值得的。 – nrussell
是的,我怀疑这是不可能的。 –