使用write.table R保持行分开

时间:2014-12-09 11:16:43

标签: r write.table

我正在尝试生成一些具有稍微不寻常的字段分隔符的文件。

require(data.table)

dset <- data.table(MPAN = c(rep("AAAA",1000),rep("BBBB",1000),rep("CCCC",1000)),
                   INT01 = runif(3000,0,1), INT02 = runif(3000,0,1), INT03 = runif(3000,0,1))

write.table(dset,"C:/testing_write_table.csv",
            sep = "|",row.names = FALSE, col.names = FALSE, na = "", quote = FALSE, eol = "")

然而,我发现这些行并没有在输出文件中单独存在,例如

AAAA | 0.238683722680435 | 0.782154920976609 | 0.0570344978477806AAAA | 0.9250325632 ......

您是否知道如何确保文本文件保留不同的行?

干杯

2 个答案:

答案 0 :(得分:2)

您使用的是错误的eol参数。行尾参数必须是一个断行:

这对我有用:

require(data.table)

dset <- data.table(MPAN = c(rep("AAAA",1000),rep("BBBB",1000),rep("CCCC",1000)),
                   INT01 = runif(3000,0,1), INT02 = runif(3000,0,1), INT03 = runif(3000,0,1))

write.table(dset,"C:/testing_write_table.csv",  #save as .txt if you want to open it with notepad as well as excel
            sep = "|",row.names = FALSE, col.names = FALSE, na = "", quote = FALSE, eol = "\n")

使用折线符号'\ n'作为行尾参数为我创建单独的行。

答案 1 :(得分:0)

原来这是一个UNIX-Windows编码问题。所以有一些红色的鲱鱼,但也许值得记录以防万一其他人在最初困惑的问题。

事实证明,Windows记事本有时难以正确呈现在UNIX中生成的文件,快速测试是否存在问题是在Windows写字板中打开,您可能会发现它将正确呈现。