【发布时间】:2018-09-18 01:40:57
【问题描述】:
根据列名重新绑定数据帧的最有效方法是什么?所有数据框的列名都不相同,因此我希望在此过程中引入 NA 值。
这是我正在谈论的可重现示例,但请记住,每个数据帧的数据帧大小为 1 行 x 约 10^8 列。我有一个包含 100 个这样的数据框的列表。
a <- as.data.frame(t(as.data.frame(c(1, 4, 5, 3, 7, 3, 5, 6))))
rownames(a) <- NULL
colnames(a) <- c("AA", "DD", "CD", "KD", "DSF", "DFS", "RF")
b <- as.data.frame(t(as.data.frame(c(4, 7, 3, 2, 7, 3)))
rownames(b) <- NULL
colnames(b) <- c("AA", "DFS", "CD", "UF", "KD", "DD")
c <- as.data.frame(t(as.data.frame(c(2, 4, 7, 3,)))
rownames(c) <- NULL
colnames(c) <- c("AA", "NF", "CD", "UF")
list <- list(a, b, c)
谢谢!
【问题讨论】:
-
bind_rows肯定能胜任这项工作,但拥有 1 亿列的数据框似乎大得令人望而却步。您确定数据绝对必须以这种方式存储吗? -
是的,我有超过 1 亿个特征可以运行特征选择。如果您对这个大小的数据集的特征选择有任何建议,也将不胜感激,尽管超出了这个问题的范围。
-
数据帧会带来大量的计算开销。我建议将这些数据存储在矩阵中。
-
@jdobres 以下解决方案似乎都不适用于矩阵。您对矩阵有什么建议吗?