R 如何从向量中提取数字的倍数

R 如何从向量中提取数字的倍数,r,vector,R,Vector,我有一个向量 x为此,您可以使用模运算符,即%%。例如: > 322%%8 [1] 2 它告诉你,在322除以8之后,剩下2,也就是说,320正好是8的40倍,剩下2 在您的示例中,我们可以将%%与子集设置结合使用,以获得8的倍数。请记住,%%对于8的精确倍数产生0: input = 1:1000 multiple_of_8 = (input %% 8) == 0 head(multiple_of_8) [1] FALSE FALSE FALSE FALSE FALSE FALSE le

我有一个向量


x为此,您可以使用模运算符,即
%%
。例如:

> 322%%8
[1] 2
它告诉你,在322除以8之后,剩下2,也就是说,320正好是8的40倍,剩下2

在您的示例中,我们可以将
%%
与子集设置结合使用,以获得8的倍数。请记住,
%%
对于8的精确倍数产生0:

input = 1:1000
multiple_of_8 = (input %% 8) == 0
head(multiple_of_8)
[1] FALSE FALSE FALSE FALSE FALSE FALSE
length(multiple_of_8)
[1] 1000
还要注意的是,
%%
是一个矢量化操作,即左手边是一个矢量,结果也是一个矢量。_8
向量的
倍数现在包含1000个逻辑,说明
输入
的特定元素是否是8的精确倍数。使用该逻辑向量得到所需的结果:

input[multiple_of_8]
  [1]    8   16   24   32   40   48   56   64   72   80   88   96  104  112  120
 [16]  128  136  144  152  160  168  176  184  192  200  208  216  224  232  240
 [31]  248  256  264  272  280  288  296  304  312  320  328  336  344  352  360
 [46]  368  376  384  392  400  408  416  424  432  440  448  456  464  472  480
 [61]  488  496  504  512  520  528  536  544  552  560  568  576  584  592  600
 [76]  608  616  624  632  640  648  656  664  672  680  688  696  704  712  720
 [91]  728  736  744  752  760  768  776  784  792  800  808  816  824  832  840
[106]  848  856  864  872  880  888  896  904  912  920  928  936  944  952  960
[121]  968  976  984  992 1000
或者更紧凑地说:

input[(input %% 8) == 0]

模运算符是正常的方法
res你是指指数是8的倍数还是仅仅是值是8的倍数?谢谢你的回答!我指的是8的倍数。
res@germcd您能为您所做的提供更多的上下文吗。这可以在一个新的答案中完成。我使用整数除法。它与
8*1:125