データフレーム内に、指定された2つの列に用語が出現するかどうかによって、TRUEまたはFALSEの新しい列を作成したいとします。 これは、いくつかの例のデータである:複数の指定された列にまたがってgreplする
AB <- c('CHINAS PARTY CONGRESS','JAPAN-US RELATIONS','JAPAN TRIES TO')
TI <- c('AMERICAN FOREIGN POLICY', 'CHINESE ATTEMPTS TO', 'BRITAIN HAS TEA')
AU <- c('AUTHOR 1', 'AUTHOR 2','AUTHOR 3')
M <- data.frame(AB,TI,AU)
私は1つの列、または他のためにそれを行うことができますが、私は両方のためにそれを行う方法を見つけ出すことはできません。言い換えれば、互いに上書きしない2つの線をどのように組み合わせるのか分かりません。
M$China <- mapply(grepl, "CHINA|CHINESE|SINO", x=M$AB)
M$China <- mapply(grepl, "CHINA|CHINESE|SINO", x=M$TI)
私が全体data.frame.Iを選択することはできません、私は列を指定することが重要であるが、他の同様の質問を探したが、どれも私の場合に適用されますように見えていないと私は適応することができていないいます既存の例。
M$China <- mapply(grepl, "CHINA|CHINESE|SINO", x=(M$AB|M$TI)
'地図試しSINO' [1] TRUE FALSE | CHINESE |(grepl、M、 "CHINA | SINO | CHINESE")' – akrun
は、私は地図が何をするか正確にわからないが、それは、この出力に $ 'CHINAを与えますFALSE $ [1] FALSE TRUE FALSE $ [1] FALSE FALSE FALSE。これはデータフレーム全体で実行されているようですが、新しい列は追加されません。 –
SCW
これは 'list'形式です。 'data.frame'をラップするか、' M [] < - Map(grepl、 "CHINA | CHINESE | SINO"、M) ' – akrun