我有一个CSV文件,其中有两列Name和Number,这个CSV每天都会生成,我想要的是拥有一个变量,并将我每天获得的数据附加到此变量中,并将当前日期作为记录目的。 需要将此过程自动化为每日任务。 我所做的就在下面。
假设这是第一个数据
name number
1 a 1
2 b 2
3 c 3
4 d 4
5 e 5
6 f 6
以这种方式为此数据添加日期
df <- cbind(df,Date = march8) //march8 has date of this day
添加日期后
name number Date
1 a 1 2018-05-08
2 b 2 2018-05-08
3 c 3 2018-05-08
4 d 4 2018-05-08
5 e 5 2018-05-08
6 f 6 2018-05-08
现在我想将当前日期的另一个数据附加到此数据
我的新数据
name number
1 l 3
2 c 4
3 a 5
4 c 6
5 d 4
6 g 2
再次添加日期。
df1 <- cbind(df1,Date = Sys.Date())
添加日期后
name number Date
1 l 3 2018-05-09
2 c 4 2018-05-09
3 a 5 2018-05-09
4 c 6 2018-05-09
5 d 4 2018-05-09
6 g 2 2018-05-09
最后
df <- rbind(df,df1)
合并后
name number Date
1 a 1 2018-05-08
2 b 2 2018-05-08
3 c 3 2018-05-08
4 d 4 2018-05-08
5 e 5 2018-05-08
6 f 6 2018-05-08
7 l 3 2018-05-09
8 c 4 2018-05-09
9 a 5 2018-05-09
10 c 6 2018-05-09
11 d 4 2018-05-09
12 g 2 2018-05-09
每天都这样做,是否有更好的方法来实现整个过程的自动化。 希望我的问题清晰易懂,对不起发表这么长的问题。
三江源。
答案 0 :(得分:0)
如果它应该在服务器上运行,请尝试使用类似Linux cron的东西来每天调用bash脚本。在bash脚本中,您可以调用Rscript将新数据附加到csv文件。
答案 1 :(得分:0)
示例数据并设置wd()
xy = data.frame(Date = Sys.Date()-1, matrix(runif(5*6), ncol = 6))
setwd(....)
使用write.csv第一次写作
write.csv(xy,"data.csv", row.names=F)
稍后,使用write.table
xy = data.frame(Sys.Date(), matrix(runif(5*6), ncol = 6))
write.table(xy, file="data.csv", sep = ",", append = T, col.names = F, row.names=F)