Что означает знак двойного процента (%%)?

#r

#r

Вопрос:

Для чего используется функция double percent ( %% ) в R?

При его использовании создается впечатление, что он делит число впереди на число позади него столько раз, сколько может, и возвращает оставшееся значение. Это правильно?

Из любопытства, когда это было бы полезно?

Ответ №1:

На странице справки «Арифметические операторы» (на которую вы можете перейти через ?"%%" ) написано

%% указывает ‘x mod y’

это полезно только в том случае, если вы достаточно программировали, чтобы знать, что это относится к операции по модулю, т.Е. целочисленному делению x на y и возврату остатка. Это полезно во многих, многих, многих приложениях. Например (от @GavinSimpson в комментариях), %% полезно, если вы выполняете цикл и хотите выводить на экран какой-либо индикатор прогресса на каждой n-й итерации (например, использовать if (i %% 10 == 0) { #do something} для выполнения чего-либо на каждой 10-й итерации).

Поскольку %% это также работает для чисел с плавающей запятой в R, я только что откопал пример, в котором if (any(wts %% 1 != 0)) используется для проверки, где любое из wts значений не является целым числом.

Комментарии:

1. Отлично, спасибо за ответ. Я посмотрел на ?»%%», но не понял, что означает «x mod y».

2. Если ответ решает вашу проблему, вам предлагается нажать на галочку, чтобы принять его … Кроме того, для дальнейшего использования полезно указать в своем вопросе то, что вы уже пробовали (например, «Я посмотрел ?"**" и вижу, что там написано «x mod y», но я не знаю, что это значит»), чтобы люди могли дать вам наиболее полезный ответ

3. О чем %>% ? Я видел, что это используется в нескольких примерах, но я не уверен, что он делает (вот как я сюда попал).

4. @GavinSimpson ты не хочешь! в этой строке вам нужно другое = т.е. На каждой 10-й итерации остаток (от 10/10 или 20/10) ДОЛЖЕН быть равен 0

5. @dez93_2000 Да; глупая опечатка, которую мы с Беном проглядели

Ответ №2:

Результатом действия оператора %% является ОСТАТОК от деления,

Например. 75%% 4 = 3

Я заметил, что если дивиденд меньше делителя, то R возвращает то же значение дивиденда.

Например. 4%% 75 = 4

Приветствия

части деления

Ответ №3:

%% в R возвращает остаток, например:

 s=c(1,8,10,4,6)
d=c(3,5,8,9,2)
x=s%%d
x
[1] 1 3 2 4 0