データフレーム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つのオペランドを持つ関数を、で始まり、で終わる名前に割り当てる必要があります%
。
negate
from を使用することで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)
)。人生はときどき楽になることがある...