Write.table不能用逗号分隔

时间:2017-10-09 10:37:52

标签: r

为什么不将csv写成(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4)(在查看时)记事本)

results <- data.frame(Answer= rep(4,16))
write.table(results$Answer, file = "paul.csv", row.names=FALSE, col.names=FALSE, sep=",")

就好像它忽略了9月的论点..? 保罗

3 个答案:

答案 0 :(得分:1)

如果希望sep能够正常工作,则不应将变量定义为一列,因为sep = ...适用于列。这是你可以做到的一种方式:

results <- data.frame(t(rep(4,16)))
write.table(results, file = "paul.csv", row.names=FALSE, col.names=FALSE, sep=",")

答案 1 :(得分:1)

有两种简单的可能性 一,使用参数eol = ","就像我在上面的评论中所说的那样。此方法的问题在于,在行尾会包含额外的",",因为write.table始终包含结尾换行符。

write.table(results$Answer, file = "paul.csv", row.names = FALSE, col.names = FALSE, eol = ",")

另一种方法是使用cat

cat(results$Answer, file = "paul.csv", sep = ",")

我相信这是你想要的。

答案 2 :(得分:0)

您已指定垂直向量。当写入垂直向量时,每个向量元素都写入一个自己的行:

> results <- data.frame(Answer= rep(4,16))
> dim(results)
[1] 16  1
> results
   Answer
1       4
2       4
3       4
4       4
5       4
6       4
7       4
8       4
9       4
10      4
11      4
12      4
13      4
14      4
15      4
16      4

如果要在单行中编写矢量,可以使用函数t( )将垂直矢量转换为水平矢量:

> results <- t(data.frame(Answer= rep(4,16)))
> dim(results)
[1]  1 16
> results
       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16]
Answer    4    4    4    4    4    4    4    4    4     4     4     4     4     4     4     4

然后将数据写入文件:

> results <- t(data.frame(Answer= rep(4,16)))
> write.table(results$Answer, file = "paul.csv", row.names=FALSE, col.names=FALSE, sep=",")

将产生以下内容:

4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4