我一直在努力使用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")