【发布时间】:2016-07-28 07:22:28
【问题描述】:
我有一个包含列“agency_lookup”的“Agency_Reference”表,其中包含 200 个字符串条目,如下所示:
- 阿尔法
- 测试版
- 伽马等..
我有一个包含一百万行的数据框“TEST”,其中包含一个“Campaign”列,其中包含以下条目:
- Alpha_xt2010
- alpha_xt2014
- Beta_xt2016 等。
我想遍历参考表中的每个条目,并查找每个活动列条目中存在的字符串,并在表中创建一个新的机构标识符列变量。
我当前的代码如下,执行起来很慢。请求有关如何优化的指导。我想学习如何以 data.table 的方式进行操作
Agency_Reference <- data.frame(agency_lookup = c('alpha','beta','gamma','delta','zeta'))
TEST <- data.frame(Campaign = c('alpha_xt123','ALPHA345','Beta_xyz_34','BETa_testing','code_delta_'))
TEST$agency_identifier <- 0
for (agency_lookup in as.vector(Agency_Reference$agency_lookup)) {
TEST$Agency_identifier <- ifelse(grepl(tolower(agency_lookup), tolower(TEST$Campaign)),agency_lookup,TEST$Agency_identifier)}
预期输出:
广告系列----Agency_identifier
alpha_xt123---alpha
ALPHA34----阿尔法
Beta_xyz_34----beta
BETa_testing----beta
code_delta_-----delta
【问题讨论】:
-
请展示一个可重现的小例子和预期的输出
-
@akrun :我发布的初始代码有错误。因此编辑了代码以显示我当前使用的实际代码。如果需要其他信息,请告诉我,以帮助完成此查询。
-
您的代码给出了错误,尤其是。
for循环。预期输出是多少
标签: r for-loop data.table