R:将列表导出到文件,将单个列表作为列

时间:2017-11-01 15:11:33

标签: r list dataframe export-to-csv

我一直在努力使用R生成特定的输出格式,即制表符分隔的多列表文件,每列代表一个列表,第一行包含各个列表的名称< /强>

我已将单个列表保存在列表对象中:

multi_list <- list(vector1=c(1,2,3),vector2=c(4,5),vector3=c(6,7,8,9),vector4=c(10)) 

我的问题在于,各个列表的长度不同,因此无法将NA值添加到较短的列表中而不能将其连接为数据帧,而这些列表不适用于所需的输出格式。 / p>

如何将我的多列表写入一个tsv文件,每个向量作为一个单独的列?

修改

我找到了一个基于this问题答案的解决方案,如下所示。可能不是最优雅的方式,但它有效:

df <- data.frame(vector1 = rep(NA, max(sapply(multi_list, length))))
df[1:length(multi_list$vector1), 1] <- multi_list$vector1
df[1:length(multi_list$vector2), 2] <- multi_list$vector2
df[1:length(multi_list$vector3), 3] <- multi_list$vector3
df[1:length(multi_list$vector4), 4] <- multi_list$vector4
colnames(df) <- c("vector1", "vector2", "vector3", "vector4")

write.table(df, file = 'multi_list.tsv', row.names = FALSE, na = '', sep="\t")

0 个答案:

没有答案