相关疑难解决方法(0)

当有rownames时,write.table会将不需要的前导空列写入标题

检查这个例子:

> a = matrix(1:9, nrow = 3, ncol = 3, dimnames = list(LETTERS[1:3], LETTERS[1:3]))
> a
  A B C
A 1 4 7
B 2 5 8
C 3 6 9
Run Code Online (Sandbox Code Playgroud)

表格显示正确.将它写入文件有两种不同的方式...

write.csv(a, 'a.csv') 这给出了预期:

"","A","B","C"
"A",1,4,7
"B",2,5,8
"C",3,6,9
Run Code Online (Sandbox Code Playgroud)

write.table(a, 'a.txt')这螺丝了

"A" "B" "C"
"A" 1 4 7
"B" 2 5 8
"C" 3 6 9
Run Code Online (Sandbox Code Playgroud)

事实上,缺少一个空的标签....这对于下游事物来说是一种痛苦.这是一个错误还是一个功能?有解决方法吗?(除了write.table(cbind(rownames(a), a), 'a.txt', row.names=FALSE)

干杯,yannick

r export-to-csv write.table

84
推荐指数
3
解决办法
6万
查看次数

将新行追加到现有 csv 文件中

我想将新行添加到系统中现有的 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)
Run Code Online (Sandbox Code Playgroud)

现在执行相反的操作并从现有文件中读取,修改变量并尝试将修改后的数据表附加到现有文件中:

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)
Run Code Online (Sandbox Code Playgroud)

这不起作用,finances.csv文件被完全重写,并且追加选项似乎仅在文件是字符串时才起作用。

  • 如何将相同大小的数据表附加到现有的 csv 文件中?

r

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

r ×2

export-to-csv ×1

write.table ×1