【发布时间】:2017-11-24 07:34:37
【问题描述】:
我需要将该组关联到 20k 个组,这些组总共有 1200 万行。
为了解决这个问题,我编写了一个 for 循环,但它显然完全没有效率,我相信这个任务可以很容易地向量化。但是,我很难理解如何以矢量化方式编写此指令。
问题如下:
我有一个具有 3 个功能的辅助表:ID、start_row、end_Row。
start_row 是 my_DF 中属于 ID x 的第一个元素的行索引;
end_row 是 my_DF 中属于 ID x 的最后一个元素的行索引。
矢量化指令应执行以下操作:
考虑如下的辅助表:
auxiliary_table <- data.frame(ID = c(1,2,3,4), start_row = c(1,4,8,13), end_row = c(3,7,12,14))
考虑如下 DF:
my_df <- data.frame(Var_a = c(1,2,3,1,2,3,4,6,4,3,1,2,1,1)
我们需要根据auxiliary_table中包含的start_row和end_row索引信息来关联ID。
solution_df 是:
solution_df <- data.frame(my_df, ID=(1,1,1,2,2,2,2,3,3,3,3,3,4,4)
我要求对 for 循环进行矢量化,但我对 data.table 解决方案持开放态度。
我希望我清楚并正确地提出了我的问题。
【问题讨论】:
-
如果有一些数据示例将不胜感激;输入是什么样子,输出应该是什么样子......
-
对不起,我忘记将 my_df 格式化为代码,但是,我提出了 my_df,用于索引 my_df 和 solution_df 的辅助表,表示任务的解决方案。我应该介绍其他东西吗??
标签: r loops data.table vectorization