1

我正在尝试创建一系列data.frames 并将它们导出到 csv 文件以在另一个程序中使用。文件的格式需要是几列等长,然后是最后一列没有数据。我认为 alist是执行此操作的适当方法,但我无法使导出的 csv 文件如下所示。

alist <- list(c(100,1,2,3,4,5), list(c(200,1,2,3,4,5)), list(c(300)))

我的最终 csv 文件应如下所示:

100 200 300
1   1 
2   2 
3   3 
4   4 
5   5 

有什么建议么?感谢任何帮助。

4

1 回答 1

1

希望我能正确理解这个问题(如果黑暗回归......)。

NA写入 CSV 文件时,R 中的值不会造成任何问题,因为write.table" na" 中有一个参数,描述为用于数据中缺失值的字符串。因此,在将您的值写入文件NA时,您的值可以用任何内容替换。data.frame

这是一个小例子:

创建一个不平衡的data.frame

注意空的“300”列和不完整的“400”列。NA在 R 中,这些是用值填充的。

df <- data.frame(`100` = c(1,2,3,4,5), `200` = c(1,2,3,4,5), 
                 `300` = NA, `400` = c(letters[1:3], NA, NA), 
                 check.names=FALSE)
df
#   100 200 300  400
# 1   1   1  NA    a
# 2   2   2  NA    b
# 3   3   3  NA    c
# 4   4   4  NA <NA>
# 5   5   5  NA <NA>

将数据写入 CSV 文件

cat(readLines(...))在这里,为了方便和演示,我正在写入 R 工作区中的临时文件并查看它。实际上,您可能会将其写入工作目录中的 CSV,然后用另一个程序打开它。请注意根据输入正确形成 CSV 文件,但NA原始数据中没有任何内容。

x <- tempfile()
write.csv(df, file = x, na = "", row.names = FALSE)
cat(readLines(x), sep="\n")
# "100","200","300","400"
# 1,1,,"a"
# 2,2,,"b"
# 3,3,,"c"
# 4,4,,
# 5,5,,
于 2013-12-17T17:04:23.067 回答