У меня есть 2 кадра данных как этотОбновление столбца в df2 путем сопоставления шаблонов в столбцах в df1 и df2 с помощью R
TEAM <- c("PE","PE","MPI","TDT","HPT","ATD")
CODE <- c(NA,"F","A","H","G","D")
df1 <- data.frame(TEAM,CODE)
CODE <- c(NA,"F100","A234","D664","H435","G123","A666","D345","G324",NA)
TEAM <- c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA)
df2 <- data.frame(CODE,TEAM)
Я пытаюсь обновить команду в df2 сопоставляя первую букву в столбце кода в df1 с колонной кода в df2
Мой желаемый результат для df2
CODE TEAM
1 NA PE
2 F100 PE
3 A234 MPI
4 D664 ATD
5 H435 TDT
6 G123 HPT
7 A666 MPI
8 D345 ATD
9 G324 HPT
10 NA PE
Я пытаюсь этот путь с sqldf, но это не так
library(sqldf)
df2 <- sqldf(c("update df2 set TEAM =
case
when CODE like '%F%' then 'PE'
when CODE like '%A%' then 'MPI'
when CODE like '%D%' then 'ATD'
when CODE like '%G%' then 'HPT'
when CODE like '%H%' then 'TDT'
else 'NA'
end"))
Может кто-нибудь помочь мне предоставить некоторые указания по достижению этого без sqldf?