我正在阅读文档,data.table并且还注意到了一些关于SO的对话,这些对话rbindlist应该比我更好rbind.
我想知道为什么rbindlist比真正优秀的rbind场景更好?rbindlistrbind
在内存利用方面有什么优势吗?
在网络上,我发现它rbind()用于组合两个数据帧,同一个任务由bind_rows()功能执行.
那我不明白这两个函数有什么区别,哪个更有效?
我刚发现这个bug,却发现有些人称之为"功能".这让rbindlist不喜欢do.call("rbind",l)的rbind会尊重列名.此外,文档中没有提到这种完全出乎意料的行为.这真的是故意的吗?
代码示例:
> library(data.table)
> DT1 <- data.table(a=1, b=2)
> DT2 <- data.table(b=3, a=4)
> DT1
a b
1: 1 2
> DT2
b a
1: 3 4
Run Code Online (Sandbox Code Playgroud)
我希望rbind这些会生成a = 1,4的列; b = 2,3.并获得与rbind.data.table和rbind.data.frame,虽然rbind.data.table产生警告.
> rbind(DT1, DT2)
a b
1: 1 2
2: 4 3
Warning message:
In data.table::.rbind.data.table(...) :
Argument 2 has names in a different order. Columns will be bound by name …Run Code Online (Sandbox Code Playgroud)