我正在阅读文档,data.table并且还注意到了一些关于SO的对话,这些对话rbindlist应该比我更好rbind.
我想知道为什么rbindlist比真正优秀的rbind场景更好?rbindlistrbind
在内存利用方面有什么优势吗?
我有一组包含不同列的数据框.我想将它们按行组合成一个数据帧.我习惯plyr::rbind.fill这样做.我正在寻找能够更有效地完成这项工作的东西,但这与此处给出的答案类似
require(plyr)
set.seed(45)
sample.fun <- function() {
nam <- sample(LETTERS, sample(5:15))
val <- data.frame(matrix(sample(letters, length(nam)*10,replace=TRUE),nrow=10))
setNames(val, nam)
}
ll <- replicate(1e4, sample.fun())
rbind.fill(ll)
Run Code Online (Sandbox Code Playgroud) 我有一个列表,每个元素都是一个字符向量,长度不同我想将数据绑定为行,以便列名称"排列",如果有额外数据则创建列,如果有数据丢失然后创建NA
下面是我正在使用的数据的模拟示例
x <- list()
x[[1]] <- letters[seq(2,20,by=2)]
names(x[[1]]) <- LETTERS[c(1:length(x[[1]]))]
x[[2]] <- letters[seq(3,20, by=3)]
names(x[[2]]) <- LETTERS[seq(3,20, by=3)]
x[[3]] <- letters[seq(4,20, by=4)]
names(x[[3]]) <- LETTERS[seq(4,20, by=4)]
Run Code Online (Sandbox Code Playgroud)
如果我确定每个元素的格式是相同的,那么下面的行通常就是我要做的...
do.call(rbind,x)
Run Code Online (Sandbox Code Playgroud)
我希望有人提出了一个很好的小解决方案,匹配列名称并用空格填充空白,NA同时添加新列,如果在绑定过程中找到新列...