#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