我有几个不同长度的矢量要导出。 首先,我尝试制作这些的data.frame,但它们的长度不同,所以我不能。 其次,我尝试在write.csv时使用append = T,但是,所有的向量都在一行而不是几列。
我想将这些矢量导出到CSV文件中,每个矢量都在自己的列中。
答案 0 :(得分:3)
你的例子很模糊,所以我会做出一些推论:
一些数据:
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
个字符串。空白通常被解释得更好(尽管这取决于您和/或您与谁共享数据)。