-1

再現可能なデータセット

   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 ステートメントの組み合わせを使用して実行できることを知っていますが、あまり自信がありません。これを行うためのより良い方法があるかもしれませんが、わかりません。非常に混乱しています。助けが必要。

4

1 に答える 1