【发布时间】:2014-11-29 23:35:48
【问题描述】:
我有几个不同长度的向量要导出。 首先,我尝试制作这些的data.frame,但它们的长度不同,所以我不能。 其次,我尝试在 write.csv 时使用 append=T,但是,所有向量都在一行而不是几列中。
我想将这些向量导出到 CSV 文件中,每个向量都在自己的列中。
【问题讨论】:
-
您应该发布代码作为对此问题的编辑。您还需要说明引用 csv 文件的“列”是什么意思。
我有几个不同长度的向量要导出。 首先,我尝试制作这些的data.frame,但它们的长度不同,所以我不能。 其次,我尝试在 write.csv 时使用 append=T,但是,所有向量都在一行而不是几列中。
我想将这些向量导出到 CSV 文件中,每个向量都在自己的列中。
【问题讨论】:
你的例子很模糊,所以我会做一些推论:
一些数据:
set.seed(42)
vec1 <- sample(100, size = 5)
vec2 <- sample(100, size = 8)
vec3 <- sample(100, size = 9)
一般来说,当您尝试在 R 中向矩阵或 data.frame 添加列时,它确实希望行数(或向量的长度)方便;如果没有,它会抱怨。所以,我们可以强制一些。
df <- data.frame(vec1 = rep(NA, max(sapply(list(vec1, vec2, vec3), length))))
df[1:length(vec1), 1] <- vec1
df[1:length(vec2), 2] <- vec2
df[1:length(vec3), 3] <- vec3
df
## V1 V2 V3
## 1 92 52 26
## 2 93 73 46
## 3 29 14 93
## 4 81 64 95
## 5 62 68 12
## 6 NA 44 99
## 7 NA 96 53
## 8 NA 87 85
## 9 NA NA 13
现在我们可以将其写入 CSV 文件:
write.csv(df, file = 'somefile.csv', row.names = FALSE, na = '')
请注意,我将na = '' 作为选项包括在内;否则,您的 CSV 文件将在每个向量末尾和最长向量末尾之间的额外空间中包含 NA 字符串。空白通常会更好地解释(尽管这取决于您和/或您与谁共享您的数据)。
【讨论】: