我需要根据df1中的两个变量将df2中的值替换为df1中的值。
df1中的“链接变量”称为VacancyId和df2 reference。在df1中,观察有多个行,我只需要从中选择一个行。这个需要替换的行由因子级别指示,它在变量(Recruitz)中的名称中包含VacancyBankName。这些可能性是:
df1 = d.9weeks
df2 = recruitz
一些更有意义的数据:
head(d.9weeks[,c(1,12,16)],15)
VacancyId VacancyBankName ViewsByVacancyBankAndVacancyCount
57820 Monsterboard 31
57820 Facebook - Adwords campagne (Recruitz) 387
57822 Monsterboard 1
57871 Monsterboard 228
57818 LinkedIn (Jobportal) 0
57822 Stepstone 3
57822 LinkedIn (Jobportal) 1
57871 LinkedIn (Jobportal) 2
57818 Monsterboard 76
57820 ICTerGezocht 0
57871 Social Media Campagne (Recruitz) 376
57871 Stepstone 56
57820 Stepstone 92
57820 LinkedIn (Jobportal) 2
57775 Intermediair Premium 9
57775 LinkedIn (Jobportal) 0
head(recruitz[,c(2,3)], 20)
reference clicks
57871 326
57820 75
73823 105
73826 114
73785 99
73857 30
73845 177
73944 64
73851 6
73941 114
73902 132
73959 115
73946 189
73962 74
73979 93
73947 152
74006 134
73982 207
74033 60
74022 97所以如果:recruitz$reference == d.9weeks$VacancyId和d.9weeks$VacancyBankName == '... (Recruitz)'
然后是d.9weeks$ViewsByVacancyBankAndVacancyCount <- recruitz$clicks
我怎样才能在R中做到这一点?
发布于 2017-07-27 11:05:47
我认为最好的方法是先将2 df合并在一起,然后使用data.table执行ifelse语句。所以
library(data.table)
df_final <- as.data.table(merge(df1,df2[,.(VacancyId=reference,clicks)],by="VacancyId")) df_final[,ViewsByVacancyBankAndVacancyCount:=ifelse(VacancyBankName==...)]
https://stackoverflow.com/questions/45348573
复制相似问题