データフレームD1のカテゴリ変数V1は、AからZまでの文字で表される値を持つことができます。サブセットD2を作成します。これは、一部の値、たとえば、B、N、Tを除外します。基本的に、次のようなコマンドが必要です。の反対 %in%
D2 = subset(D1, V1 %in% c('B','N',T'))
データフレームD1のカテゴリ変数V1は、AからZまでの文字で表される値を持つことができます。サブセットD2を作成します。これは、一部の値、たとえば、B、N、Tを除外します。基本的に、次のようなコマンドが必要です。の反対 %in%
D2 = subset(D1, V1 %in% c('B','N',T'))
回答:
!演算子を使用して、基本的にTRUE FALSEおよびすべてのFALSE TRUEを作成できます。そう:
D2 = subset(D1, !(V1 %in% c('B','N','T')))
編集:自分で演算子を作成することもできます:
'%!in%' <- function(x,y)!('%in%'(x,y))
c(1,3,11)%!in%1:10
[1] FALSE FALSE TRUE
?"%in%"、新しい演算子が呼び出されるヘルプ(一致)ページ(入力すると表示される場所)に示されています%w/o%。
?Negate例を参照してください"%ni%" <- Negate("%in%")
subset(df, variable %ni% c("A", "B"))、たとえばsubset(df, variable Negate("%in%") c("A", "B"))
%ます。演算子を作成するには、2つのオペランドを持つ関数を、で始まり、で終わる名前に割り当てる必要があります%。
negatefrom を使用することでpurrrも、トリックをすばやくかつ適切に実行できます。
`%not_in%` <- purrr::negate(`%in%`)
次に、使用法は、例えば、
c("cat", "dog") %not_in% c("dog", "mouse")
Negate同じことをするビルトインもあります。唯一の違いは、purrrコールであるas_mapperあなたがいる間、渡す事にNegate呼び出しmatch.fun。rdocumentation.org/packages/purrr/versions/0.2.5/topics/... stat.ethz.ch/R-manual/R-devel/library/base/html/match.fun.html
別の解決策は setdiff
D1 = c("A",..., "Z") ; D0 = c("B","N","T")
D2 = setdiff(D1, D0)
D2 は希望するサブセットです。
Hmiscには%nin%、これを行う機能があります。
https://www.rdocumentation.org/packages/Hmisc/versions/4.4-0/topics/%25nin%25
library(roperators)
1 %ni% 2:10
require(TSDT)
c(1,3,11) %nin% 1:10
# [1] FALSE FALSE TRUE
詳細については、https://cran.r-project.org/web/packages/TSDT/TSDT.pdfを参照してください。
!(x %in% y))。人生はときどき楽になることがある...