我想在系统中的现有csv文件中添加一个新行。以下是MWE。首先,创建一个数据表并将其写入文件:
date <- "2017-08-01"
investPercent<- 20
expenses <- 20000
savings <- 30000
low <- 10
high <- 20
objective <-19000
data<-data.frame(date, investPercent, expenses, savings, low, high, objective)
write.csv(data, file="./finances.csv", row.names = F)
现在执行相反的操作并从现有文件中读取,修改变量并尝试将修改后的数据表附加到现有文件中:
data<-read.csv("./finances.csv",stringsAsFactors = FALSE)
date <- Sys.Date()
investPercent<- 99
expenses <- 29999
savings <- 39999
low <- 19
high <- 29
objective <-19999
dataplus<- data.frame(date, investPercent, expenses, savings, low, high, objective)
write.csv(dataplus, file="./finances.csv", append = T)
这不起作用,finances.csv
文件被完全重写,而append选项似乎只在文件是字符串时才起作用。
答案 0 :(得分:3)
您无法使用write.csv()
追加。相反,您需要使用write.table()
并指定一些其他参数。以下内容将向您的csv文件追加一行新数据,省略追加的列标题。这意味着您只需在第一次写表时包含列标题;之后,数据应该在相同的标题下流入。
write.table( dataplus,
file="./finances.csv",
append = T,
sep=',',
row.names=F,
col.names=F )