この簡単な検索を試みましたが%
、Rのパーセント()記号には何も見つかりませんでした。
%in%
次のコードではどういう意味ですか?
time(x) %in% time(y)
ここでx
、およびy
は行列です。
%in%
%stuff%
ヘルプファイルが見つからないので、パターンに従ったヘルプや同様の機能を検索するにはどうすればよいですか?
関連する質問:
この簡単な検索を試みましたが%
、Rのパーセント()記号には何も見つかりませんでした。
%in%
次のコードではどういう意味ですか?
time(x) %in% time(y)
ここでx
、およびy
は行列です。
%in%
%stuff%
ヘルプファイルが見つからないので、パターンに従ったヘルプや同様の機能を検索するにはどうすればよいですか?
関連する質問:
「%」は演算子のコンテキストだけでなく、それ自体で意味を持っているため、GSeeまたはSathishの回答が十分に進んでいるとは思いませんでした%in%
。これは、ユーザーが新しい中置演算子を定義するためのメカニズムです。%in%
これは、中置演算子またはそのより一般的な前置祖先の美徳よりもはるかに一般的な問題ですmatch
。ペアごとの "s"(um) 演算子を作成するのと同じくらい簡単です。
`%s%` <- function(x,y) x + y
または、次のように 2 次導関数演算子を作成すると、より興味深いものになる可能性があります。
`%DD%` <- function(expr, nam="x") { D(D( bquote(.(expr)), nam), nam) }
expression(x^4) %DD% "x"
# 4 * (3 * x^2)
-%
文字は、日付、日時、および 、 、 などの C タイプ形式関数の解析でもstrptime
重要formatC
ですsprintf
。
それが最初に書かれて以来、-flanked 演算子のさらに別の使用法を示す精巧なmagrittr
パッケージの出現を見てきました。dplyr
%
したがって、最も一般的な答えは、%
シンボルは R パーサーによって特別に処理されるということです。パーサーはプロット数式の処理に使用されるため、?plotmath
ヘルプ ページにはグラフィック注釈の広範なオプションも表示されます。
ヘルプページを見つけるには、引用符で囲みます。これらの作品のいずれか
> help("%in%")
> ?"%in%"
ヘルプページにアクセスすると、次のことがわかります。
'%in%'は現在次のように定義されています
'&quot;%in% "<-function(x、table)match(x、table、nomatch = 0)> 0'</ p>
はジェネリックなので、何が返ってくるtime
のかわからない。ただし、左側のどのアイテムが右側にもあるかを示します。time(X2)
X2
%in%
> c(1:5) %in% c(3:8)
[1] FALSE FALSE TRUE TRUE TRUE
も参照してください、intersect
> intersect(c(1:5), c(3:8))
[1] 3 4 5
より一般的に%foo%
は、二項演算子の構文です。R の二項演算子は、実際には偽装した単なる関数であり、2 つの引数を取ります (演算子の前と後の 1 つが関数の最初の 2 つの引数になります)。
例えば:
> `%in%`(1:5,4:6)
[1] FALSE FALSE FALSE TRUE TRUE
はベース R で定義されて%in%
いますが、独自の二項関数を定義することもできます。
`%hi%` <- function(x,y) cat(x,y,"\n")
> "oh" %hi% "my"
oh my
%in%
は、行列またはデータフレーム内の同じ名前または値の複数のオカレンスを検索してサブセット化するために使用される演算子です。
例1:同じ名前のサブセット
set.seed(133)
x <- runif(5)
names(x) <- letters[1:5]
x[c("a", "d")]
# a d
# 0.5360112 0.4231022
ここで、「d」の名前を「a」に変更します
names(x)[4] <- "a"
前の添え字を使用して類似した名前とその値を抽出しようとすると、機能しません。結果に注意してください。[1]と[4]の要素がありません。
x[c("a", "a")]
# a a
# 0.5360112 0.5360112
%in%
したがって、二項演算子を使用して、変数内の異なる位置から2つの「a」を抽出できます。
names(x) %in% "a"
# [1] TRUE FALSE FALSE TRUE FALSE
#assign it to a variable called "vec"
vec <- names(x) %in% "a"
#extract the values of two "a"s
x[vec]
# a a
# 0.5360112 0.4231022
例2:列からの複数の値のサブセット化例については、このサイトを参照してください