我有一个R脚本,它正在以平面文件的形式读入一系列数据。另一个脚本接管了这个平面文件,进行一些解析和处理,然后将结果保存为RDS格式的数据框。然后它进入睡眠状态,并重复此过程。
saveRDS(tmp.df, file="H:/Documents/tweet.df.rds") #saving the data.frame
在第二次...第n次迭代中,我只让代码处理自上一次迭代以来新增的行。然而,为了将增量行附加到永久数据框中,我必须读取它,附加并保存回去,覆盖原始数据。
df2 <- readRDS("H:/Documents/tweet.df.rds") #read in permanent
tmp.df2 <- rbind(df2, tmp.df) #append new to existing
saveRDS(tmp.df2, file="H:/Documents/tweet.df.rds") #save it
rm(df2) #housecleaning
rm(tmp.df2) #housecleaning
这种方法是有风险的,因为每当 RDS 文件处于读/写状态时,想要访问该文件的另一个进程必须等待。随着基础文件变得越来越大,风险也会增加。
是否有类似于 "appendRDS"(我知道字面上没有这个)的东西可以实现我的需求 - 对单个数据框进行迭代更新 - 保存到文件中 - 使用追加而不是完全替换?
write.table
进行追加到现有文档呢? - Carl Witthoft