为什么不将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月的论点..? 保罗
答案 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