Rでは、次の例のようなifステートメントで、Wordの赤を含むmix $ color列の色を検索し、ミックスデータフレームの新しい変数を赤に設定したいと思います。
mix$newcolor <- if(grep("Red",mix$color) "red"
データフレームミックスのサンプルデータを次に示します。
アリスブルーブルーバイオレットダークレッドミディアムバイオレットレッド
次のエラーメッセージが表示されます。
警告メッセージ:if(grepl( "deep red"、mix $ color)== TRUE) "red":条件の長さが1より大きく、最初の要素のみが使用されます
GreplはTRUEまたはFALSEのブール値を返す必要があるので、それは許容できるはずですが、何か(または多く)が欠落しています。
ご協力いただきありがとうございます。
greplとifelseステートメントを使用できます。
> color = c("AliceBlue", "BlueViolet", "DarkRed", "MediumVioletRed")
> ifelse(grepl("Red",color),"red","other")
[1] "other" "other" "red" "red"
このタスクにif
またはifelse
は必要ありません。 sub
を使用できます:
color <- c("darkred", "indianred", "violetred", "deep red",
"Orange Red", "blue", "yellow")
sub(".*red.*", "red", color, ignore.case = TRUE)
# [1] "red" "red" "red" "red" "red" "blue" "yellow"
sub
コマンドは、部分文字列"red"
を含むすべての文字列を"red"
で置き換えます。さらに、大文字と小文字の一致にignore.case = TRUE
を指定しました。