【发布时间】:2021-02-22 03:37:51
【问题描述】:
我有一个数据框“zadavatele”和数据框“Final_Town_Contacts”。在 df zadavatele 中,有一列带有名称的“buyer_name”,在 df “Final_Town_Contacts”中有一列“Name”和“id”。问题是名称的格式有点不同,所以我不能使用匹配功能。 “buyer_name”列包含名称和其他词,因此它包含“名称”列的全部内容和一些其他字符。另一个问题是并非所有包含在“zadavatele”df 中的城镇都包含在“Final_Town_Contacts”中。
我想找到匹配的城镇,然后从数据框“Final_Town_Contacts”中为“zadavatele”中的相应城镇写入变量“id”。
为了演示我想要做什么,这里有两个数据框:
# A tibble: 3 x 1
buyer_name
<chr>
1 xx abc
2 y fdg
3 z sad
Name id
<chr> <dbl>
1 y 54
2 z 11
3 x 32
我想在“zadavatele”数据框中有这个输出:
buyer_name id
<chr> <dbl>
1 xx abc 32
2 y fdg 54
3 z sad 11
我正在考虑使用 for 循环:
for (i in 1:nrow(zadavatele)) {
for (n in 1:nrow(Final_Town_Contacts)){
if(str_detect(zadavatele$buyer_name[i], Final_Town_Contacts$Name[n] &&
!is.na(str_detect(zadavatele$buyer_name[i], Final_Town_Contacts$Name[n]))))
zadavatele$id[n] = Final_Town_Contacts$`LAU 2`
}
}
但这没有用。您知道如何进行这项工作吗?
感谢您的帮助!
【问题讨论】:
标签: r string dataframe for-loop