web-dev-qa-db-ja.com

行が文字列に一致するデータフレームから行を削除

特定の行が文字列の一致基準を満たすデータフレーム内のすべての行を削除しますか?

例えば:

A,B,C
4,3,Foo
2,3,Bar
7,5,Zap

C = Fooのすべての行を除外するデータフレームをどのように返しますか:

A,B,C
2,3,Bar
7,5,Zap
54
Kyle Brandt

==と否定記号(!)を使用するだけです。 dtfmがdata.frameの名前の場合:

dtfm[!dtfm$C == "Foo", ]

または、比較で否定を移動するには:

dtfm[dtfm$C != "Foo", ]

または、subset()を使用してさらに短くする:

subset(dtfm, C!="Foo")
103
Luciano Selzer

dplyrパッケージを使用して、これらの特定の行を簡単に削除できます。

library(dplyr)
df <- filter(df, C != "Foo")

データフレームにcolumn(A)があり、3つの値(はい、いいえ、不明)があります。これがコードである「yes」の値を持つ行のみをフィルタリングしたかったのですが、これが皆さんにも役立つことを願っています-

df <- df [(!(df$A=="no") & !(df$A=="unknown")),]
1
Pratik Honrao