不能像我想的那样写.csv

时间:2018-02-16 17:04:28

标签: r csv write.table

我想创建一个名为“Extended”的数据框的.csv。查看文件时,我必须使用“carwaytempshort.csv”,它有一个很好的布局,列和行排列整齐。在查看data.frame“Extended”时,它看起来很像“carwaytempshort.csv”,行和列整齐排列。但是,当使用write.csv或write.table时,“Extended.csv”非常缺乏吸引力。列和行没有排列,而是每个数据都有引号,而某些行是两行。

我尝试过以下几行代码:

> write.table(Extended, "Extended.csv")

以及:

> write.csv(Extended, "Extended.csv")

这就是我想要的“Extended.csv”(这就是“扩展”的样子):

enter image description here

这就是我得到的:

enter image description here

1 个答案:

答案 0 :(得分:0)

使用内置的anscombe数据框,使用sprintf以您喜欢的任何方式格式化线条:

fmt <- paste(rep("%10s", ncol(anscombe)), collapse = ",")
outLines <- c(do.call("sprintf", as.list(c(fmt, names(anscombe)))), 
      do.call("sprintf", c(fmt, anscombe)))
writeLines(outLines, stdout())

,并提供:

x1,        x2,        x3,        x4,        y1,        y2,        y3,        y4
10,        10,        10,         8,      8.04,      9.14,      7.46,      6.58
 8,         8,         8,         8,      6.95,      8.14,      6.77,      5.76
13,        13,        13,         8,      7.58,      8.74,     12.74,      7.71
 9,         9,         9,         8,      8.81,      8.77,      7.11,      8.84
11,        11,        11,         8,      8.33,      9.26,      7.81,      8.47
14,        14,        14,         8,      9.96,       8.1,      8.84,      7.04
 6,         6,         6,         8,      7.24,      6.13,      6.08,      5.25
 4,         4,         4,        19,      4.26,       3.1,      5.39,      12.5
12,        12,        12,         8,     10.84,      9.13,      8.15,      5.56
 7,         7,         7,         8,      4.82,      7.26,      6.42,      7.91
 5,         5,         5,         8,      5.68,      4.74,      5.73,      6.89