R:计算 R 中数字的因子

R: Calculate factors of a number in 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结果的第二个数字,第三个取自[=10]中的第三个=] 等等。