R解析大数据帧 - 速度优化

时间:2015-07-04 07:30:16

标签: r dataframe

假设我有一个非常大的数据帧,包含2列和0.5 mil行。 例如,几行可能如下所示:

# Start    End
# 89       100
# 93       120
# 95       125
# 101      NA
# 115      NA
# 123      NA
# 124      NA

我想操纵这个数据框来输出一个看起来的数据帧 像这样:

# End     Start
# 100     89, 93, 95
# 120     101, 115
# 125     123, 124

如果有的话,最快的方法是什么呢? .5万行? bgoldst建议这段很棒的代码:

# m is a large two column data frame
end <- na.omit(m[,'V2']);
out <- data.frame(End=end,
Start=unname(sapply(split(m[,'V1'],findInterval(m[,'V1'],end [as.character(0:c(length(end)-1))],paste,collapse='.')))

然而这需要花费太长时间。

感谢您的帮助!

可能重复的帖子上的答案没有解决时间问题。 bgoldst的答案产生了预期的结果,但在我的电脑上却很慢。我想知道是否还有一些我能做的事情可以让它更快地运行。

1 个答案:

答案 0 :(得分:1)

使用data.table的解决方案可能更快:

Array
(
    [company_id] => 
    [date] => Array
        (
            [0] => 2015/07/04
            [1] => 2015/07/04
        )

)