%c()と%c()の%を使用して複数の条件でデータをフィルタリングすると予期しない動作が発生しています。 == c()メソッドを使用すると不完全な結果が返されます。この動作の論理的な説明はありますか?%in subsettingの場合
df <- data.frame(region = as.factor(c(1,1,1,2,2,3,3,4,4,4)),
value = 1:10)
library(dplyr)
filter(df, region == c(1,2))
filter(df, region %in% c(1,2))
# using base syntax
df[df$region == c(1,2),]
df[df$region %in% c(1,2),]
「地域」を数値に変換しても結果は変わりません。
'c(1,1,1,2,2,3,3,4,4,4)== 1:2'は' c(1,1,1,2,2,3,3、 4,4,4)== c(1,2,1,2,1,2,1,2,1,2) '、あるいはあなたはどういう意味ですか? – lukeA
'region == 1 |として書く必要があります。領域== 2 'である。上記のコメントはRの(ときどき迷惑な)ベクトルリサイクルルールを指します。 – Vlo
data.tableを使うと 'df [region == c(1,2)]'のエラーを返すことが期待されていると思います。 – moman822