再現可能なデータセット
data1 <- data.frame(ID = c(1,2), Description = c("Chiquita","Chiquita mazamorra"), Max = c(200,125))
data2 <- data.frame(ID = c(1,2,3,4,5,6,7), Description = c("Chiquita mini", "Chiquita Oriville","Chiquita 24h","Manzano Chiquita 5j...","Chiquita mazamorra 1,2h..","Chiquita mazamorra Buro","Chiquita AM 2F"), Max = c(24,110,80,90,134,123,210))
以下に示すように、データセットdata1があります
Id Description Max
1 Chiquita 200
2 Chiquita mazamorra 125
以下に示すように、別のデータセット data2 があります。
Id Description Actual
1 Chiquita mini 24
2 Chiquita Oriville 110
3 Chiquita 24h 80
4 Manzano Chiquita 5j... 90
5 Chiquita mazamorra 1,2h... 134
6 Chiquita mazamorra Buro 123
7 Chiquita AM 2F 210
8 Chiquita..... 124
9 Chiquita(P) 213
10 Chiquita, mazamorra, S 188
If ステートメントは、Data2 の説明の data2$Description Chiquita mazamorraにこの文字が含まれているかどうかを確認する必要があります。含まれている場合は、Data2$Actual > Data1$Max かどうかを確認します。はいの場合、結果 == 良い、そうでない場合は小さい。Chiquita mazamorra の後には、Chiquita mazamorra 1,2h などの他の文字が存在する可能性があることに注意してください。
同様に、別の ifelse は、Data2 の説明にChiquitaが含まれているかどうかを確認し、含まれている場合は Data2$Actual > Data1$Max を確認します。はいの場合、結果 == 良い、そうでない場合は小さい。チキータの後には、チキータ 24hやチキータ AM 2Fなどの他の文字が存在する可能性があります。これらは問題ありませんが、チキータ ミニやチキータ オリビルではありません。
これは、最終的に必要な出力 (data2) です。
Id Description Actual Result
1 Chiquita mini 24 NA
2 Chiquita Oriville 110 NA
3 Chiquita 24h 80 Small
4 Manzano Chiquita 5j... 90 NA
5 Chiquita mazamorra 1,2h... 134 Good
7 Chiquita mazamorra Buro 123 NA
6 Chiquita AM 2F 210 Good
8 Chiquita..... 124 Small
9 Chiquita(P) 213 NA
10 Chiquita, mazamorra, S 188 Good
これは、grepl ステートメントと ifelse ステートメントの組み合わせを使用して実行できることを知っていますが、あまり自信がありません。これを行うためのより良い方法があるかもしれませんが、わかりません。非常に混乱しています。助けが必要。