【发布时间】:2021-12-27 20:13:46
【问题描述】:
我想编写一个 .tsv 文件并使用制表符分隔符 sep = "\t",但它似乎不起作用。比如我有这个简单的数据
a<-c(5,1,0,3,2,0.6,1.6,7,9,0)
b<-c(11,0,1,18,11,11,0,13,20,10)
c<-c(10,20,0.7,0.8,0.3,0.4,0,0.9,1,1)
MAT<-cbind(a,b,c)
MAT<- as.data.frame(MAT)
然后我将这些数据写入 .tsv 文件中使用
write.csv(MAT, "test.tsv", row.names = FALSE, quote = FALSE, sep = "\t")
但是,当我尝试阅读 test.tsv 时使用
read.csv("test.tsv")
结果似乎还可以。但是当我使用命令进行更深入的检查时
more test.tsv
通过终端,它显示分隔符是“,”而不是制表符。请任何人解释它为什么会发生?以及如何使制表符分隔符 sep = "\t" 代替 "," 起作用?谢谢
【问题讨论】:
-
它没有警告你
attempt to set 'sep' ignored吗?你应该改用write.table()。 -
CSV 代表逗号分隔值。如果您不想要逗号分隔符,请使用
write.table -
附带说明,应避免使用
as.data.frame(cbind(...))- 当您有混合数据类型时,它可能会导致问题,因为cbind创建了一个矩阵。直接使用MAT <- data.frame(A, B, C)更短、更高效、更安全。 -
@user438383 是的,但第一个文件使用 write_csv 很好,所以我很困惑。
-
@GregorThomas 我明白了。谢谢