在R中:为每列保存带有不同分隔符的文本文件?

时间:2014-06-22 08:35:32

标签: r save separator

在R中是否可以将数据框(或data.table)保存到包含不同列的不同分隔符的文本文件中? 例如: Column1 [TAB] Column2 [,] Column3?

[]表示分隔符,这里是TAB和逗号。

1 个答案:

答案 0 :(得分:0)

函数write.table只接受一个分隔符。

MASS::write.matrix可以解决问题:

require(MASS)
m <- matrix(1:12, ncol = 3)
write.matrix(m, file = "", sep = c("\\tab", ","), blocksize = 1)

返回

1\tab5,9
 2\tab 6,10
 3\tab 7,11
 4\tab 8,12

但由于此函数的文档并未说明允许使用多个分隔符,因此如果上述方法存在一些副作用,则可能更安全,以防万一。

例如,

seps <- c("\\tab", ",", "\n")
apply(m, 1, function(x, seps) 
  cat(x, file = "", sep = seps, append = TRUE), seps = seps)

返回

1\tab5,9
2\tab6,10
3\tab7,11
4\tab8,12

请注意append设置为TRUE,因此如果输出文件已存在,则会被覆盖。