【发布时间】:2019-10-11 12:39:55
【问题描述】:
我正在清理一个大型数据集,第 1 列有几个公司名称的拼写。第 2 列中的公司 ID 在所有公司拼写中都是相同的,因此我想搜索公司 ID 并将所有公司拼写替换为第一个出现的拼写(哪个并不重要)。
我是 R 和 data.table 语法的新手,但尝试遍历公司 ID 并使用 setDT 替换公司名称值。但是,我无法弄清楚如何仅用公司名称拼写的第一个实例替换那些共享相同公司 ID 的公司。
这是我目前的位置:
library(data.table)
#Sample Datatable
CompanyDT <- data.table(Company_Name=c("Froklo","Forklo","Forlko","Corp3","Grap","Garp"), Company_ID=c(1,1,1,2,3,3))
# Company_Name Company_ID
#1: Froklo 1
#2: Forklo 1
#3: Forlko 1
#4: Corp3 2
#5: Grap 3
#6: Garp 3
我正在处理的循环
for(j in CompanyDT[,.(Company_ID)])
FirstFacName <- CompanyDT[Company_ID[j], Company_Name]
setDT(CompanyDT)[, Company_Name:=FirstFacName]
我想要这个结果,第一个拼写实例用相同的公司 ID 替换所有公司的名称:
# Company_Name Company_ID
#1: Froklo 1
#2: Froklo 1
#3: Froklo 1
#4: Corp3 2
#5: Grap 3
#6: Grap 3
但我得到了这个结果,表中的第一个公司名称替换了所有公司名称,无论公司 ID 是什么:
# Company_Name Company_ID
#1: Froklo 1
#2: Froklo 1
#3: Froklo 1
#4: Froklo 2
#5: Froklo 3
#6: Froklo 3
【问题讨论】:
标签: r data.table spelling