2

rawdata生態学的情報を含む列を持つデータフレームがあります。列が既にデータを持っている種のベクトルと一致するすべての行を削除し、LatinNameデータが欠落している種のみで新しいデータフレームを作成しようとしています。だから、私がやりたいことは次のようなものです:

matches <- c("Thunnus thynnus", "Balaenoptera musculus", "Homarus americanus") 
# obviously these are a random subset; the real vector has ~16,000 values 
rawdata_missing <- rawdata %>% filter(LatinName != "matches") 

ブール演算子は文字列に適用できないため、これは機能しません。または、次のようなこともできます。

rawdata_missing <- filter(rawdata, !grepl(matches, LatinName) 

これ!greplも文字列が使えないのでうまくいきません。

IS inrawdataの行を使用してサブセット化できる方法がたくさんあることは知っていますが、 IS IN でない行をサブセット化する適切な方法がわかりません。LatinNamematchesrawdataLatinNamematches

助けてくれてありがとう!

4

2 に答える 2

0

サブセット、ペースト、mapply、grepl を使用する別の方法は...

fileteredData <- subset(rawdata,mapply(grepl,rawdata$LatinName,paste(Matches,collapse = "|")) == FALSE)

于 2015-10-20T05:31:05.170 に答える