R:R

2017-04-22 9 views
0

に数の要因を計算し、私はRで少し遊んでいたと私は理解していないことを、この動作で出てきた:R:R

num <- seq(1,20,1) 

num[num %% c(1,2) == 0] 
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 

だからのアナログ表現のようです

num[num %% 1 == 0 | num %% 2 == 0] 

しかし、私は次の操作を行い奇妙な取得します:

num[num %% c(1,3) == 0] 
[1] 1 3 5 6 7 9 11 12 13 15 17 18 19 

num[num %% c(1,4) == 0] 
[1] 1 3 4 5 7 8 9 11 12 13 15 16 17 19 20 

私はそれについて考えてきたが、私は出て来ることができませんこれについて説明します。それはちょうど好奇心の外ですが、誰かが理由があれば、それは非常に興味深いです!

ありがとうございます!

+0

リサイクルルールをご覧ください! (セクション2.2の[R入門](http://cran.r-project.org/doc/manuals/R-intro.pdf)を参照してください)。 – jogo

答えて

0

jogoは言うとおり、リサイクルルールです。 num %% 3の結果がある一方で

num %% 1の結果は

[1] 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2num %% c(1,3)

[1] 0 2 0 1 0 0 0 2 0 1 0 0 0 2 0 1 0 0 0 2

0123の結果を見てみると

[1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

です

結果の最初の数はnum %% 1結果の最初の数、num %% 3結果の第二の数、num %% 1およびSO 3番目から第三から第から取られます。