我通常使用大型数据帧,这些数据帧排序很好(或者可以很容易地排序).
给定两个数据帧,两者都按'用户'排序
some.data <user> <data_1> <data_2>
user <user> <user_attr_1> <user_attr_2>
Run Code Online (Sandbox Code Playgroud)
我跑m = merge(some.data,user),我得到的结果如下:
m = <user> <data_1> <data_2> <user_attr_1> <user_attr_2>
Run Code Online (Sandbox Code Playgroud)
这很好.
但是merge没有利用这些数据帧在公共列上排序,使得合并相当漂亮的CPU /内存很重.但是,这个合并可以在O(n)中完成
我想知道在R中是否有办法对排序数据集进行有效合并?
我对此没有任何经验,但据我所知,这是该软件包data.table旨在改进的问题之一.
对于大多数实际目的,data.table= data.frame+ index.因此,当正确使用时,这可以提高相当多的大型操作的性能.
将你data.frame变成a data.table(即添加索引)可能需要花费一些时间(尽管我希望这会得到很好的优化),但是一旦你搞定了,像merge这样的函数可以很容易地使用索引来获得更好的性能.
| 归档时间: |
|
| 查看次数: |
653 次 |
| 最近记录: |