2017-04-11 3 views
0

申し訳ありません愚かな質問ですが、回答を見つけるためにどのようなキーワードを使用するのかよくわからないので、私は何も探していません。特定の文字セットを含むエントリを0または1で置き換えるのに、どのパッケージ/関数を使用しますか?

私はカラムがあります:df $ infecting_agent。エントリは「:$菌とのdf $ウイルス

dfを私はすべての観測を持ちたい私は2つの新しい列をしたいなど、

」「ブドウ」「細菌」「ウイルス」」細菌のようなものがあります診断エントリに "bact"または "cocc"または "staph"が含まれている場合は、バクテリアの場合は1になります。私はウイルスの列についても同様に行いますが、多くの観測では両方の列に1があります。

誰かが使用するパッケージを教えてもらえますか、少なくとも私の問題を検索するために使用するべき用語は何ですか?私は "Rの0または1の文字列を置き換える"のバリエーションを試しましたが、私は関連性のあるものは得られていないと思います。

ありがとうございました!

+0

それはいくつかの例のデータと必要な出力の例を参照するのに役立つでしょう。両方の列に1がどれくらいあるかははっきりしていません。エージェントがどのようにして細菌とウイルスの両方になるのかわかりません。 – neilfws

+0

@ neilfws:文字列は「バクテリアかウイルスか」とすることができます。 – smci

+0

'df $ bacteria < - grepl(" bact "、df $ infecting_agent)'?論理的ではなく整数を使用する場合は、ゼロを追加してください。 –

答えて

1

あなたはdplyrstringrでそれを行うことができます。

library(dplyr);library(stringr) 

df1 <- data.frame(infecting_agent=c('staphylococcus','bacteria','virus','bacterial')) 
df1 %>% 
mutate(bacteria=ifelse(str_detect(infecting_agent, 'bact|cocc|staph'),1,0), 
     virus=ifelse(str_detect(infecting_agent, 'vir|cocc'),1,0) 
     ) 

    infecting_agent bacteria virus 
1 staphylococcus  1  1 
2  bacteria  1  0 
3   virus  0  1 
4  bacterial  1  0 
+0

なぜdownvote?それは質問に答える。 –

+0

質問があいまいだと思います。おそらく、 'virus'カラムは' infecting_agent' = virusの場合に限り1を含んでいなければなりません。 – neilfws

+0

これは完璧に機能しました、ありがとうございます! – CineyApp

関連する問題