根据列名绑定数据框(超过 10^8 列)的最有效方法
Most efficient way to bind data frames (over 10^8 columns) based on column names
根据列名绑定数据框的最有效方法是什么?所有数据框都没有相同的列名,所以我希望在此过程中引入 NA 值。
这是我正在谈论的可重现示例,但请记住,每个数据框的数据框大小为 1 行乘以 ~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
library(dplyr)
bind_rows(list)
或 rbindlist
来自 data.table
library(data.table)
rbindlist(list, fill = TRUE)
根据列名绑定数据框的最有效方法是什么?所有数据框都没有相同的列名,所以我希望在此过程中引入 NA 值。
这是我正在谈论的可重现示例,但请记住,每个数据框的数据框大小为 1 行乘以 ~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
library(dplyr)
bind_rows(list)
或 rbindlist
来自 data.table
library(data.table)
rbindlist(list, fill = TRUE)