【发布时间】:2014-09-01 19:13:20
【问题描述】:
我有一个大型(约 450 万条记录)数据框,其中几列已通过散列匿名,我没有密钥,但我确实希望将它们重新编号为更清晰的数字以帮助分析.
为此,例如,我推断“campaignID”在 4.5 条记录中具有 161 个唯一元素,并创建了一个向量来保存这些元素。然后我尝试编写一个 FOR/IF 循环来使用唯一元素向量搜索整个数据集 - 对于“campaignID”的每个值,它都会根据唯一元素向量进行检查,当它找到匹配项时,它会返回唯一元素向量的索引值作为新的活动 ID。
campaigns_length <- length(unique_campaign)
dataset_length <- length(dataset$campaignId)
for (i in 1:dataset_length){
for (j in 1:campaigns_length){
if (dataset$campaignId[[i]] == unique_campaign[[j]]){
dataset$campaignId[[i]] <- j
}}}
问题当然是,虽然它有效,但需要很长时间 - 我不得不在 12 小时后停止它!有谁能想到一种更好的方法,它更快、更便宜、计算成本更低?
【问题讨论】:
-
试用dplyr包这里有视频教程youtube.com/watch?v=wki0BqlztCo
-
提示:如果您提供reproducible example,您将获得更多答案 - 即您应该包含示例数据。
标签: r