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