R:计算若干因素中的R
问题描述:
我有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
我一直在想这件事,但我不能出来并对此进行解释。这只是出于好奇,但如果有人有一个理由,这将是非常有趣的听到!
谢谢!
答
正如jogo所说,这是回收规则。
的num %% 1
结果是
[1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
同时的num %% 3
结果是
[1] 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2
综观num %% c(1,3)
[1] 0 2 0 1 0 0 0 2 0 1 0 0 0 2 0 1 0 0 0 2
结果中的第一个数字取自num %% 1
结果的第一个数字,第二个来自第二个数字num %% 3
结果,第三个来自num %% 1
第三个数字等等。
看看回收规则! (在2.2节的[An Introduction to R](http://cran.r-project.org/doc/manuals/R-intro.pdf)中)。 – jogo