Wat betekent het dubbele procentteken (%%)?

Waarvoor wordt het dubbele percentage (%%) gebruikt in R?

Als je het gebruikt, lijkt het alsof het het getal ervoor deelt door het getal erachter, zo vaak als het kan en de overgebleven waarde retourneert. Klopt dat?

Uit nieuwsgierigheid, wanneer zou dit nuttig zijn?


Antwoord 1, autoriteit 100%

Op de helppagina “Rekenkundige operatoren” (die u kunt bereiken via ?"%%") staat

%%’ geeft ‘x mod y’ aan

wat alleen handig is als je genoeg hebt geprogrammeerd om te weten dat dit verwijst naar modulaire verdeling, dwz integer-deel xdoor yen retourneer de rest. Dit is handig in vele, vele, vele toepassingen. Bijvoorbeeld (van @GavinSimpson in opmerkingen), %%is handig als u een lus uitvoert en elke n-de iteratie een soort voortgangsindicator op het scherm wilt afdrukken (bijv. gebruik if (i %% 10 == 0) { #do something}om elke 10e iteratie iets te doen).

Aangezien %%ook werkt voor getallen met drijvende komma in R, heb ik zojuist een voorbeeld opgegraven waarin if (any(wts %% 1 != 0))wordt gebruikt om te testen waar een van de wts-waarden geen geheel getal is.


Antwoord 2, autoriteit 13%

Het resultaat van de %%-operator is de REST van een deling,

Bijv. 75%%4 = 3

Ik heb gemerkt dat als het dividendlager is dan de deler, R dezelfde waarde voor dividendretourneert.

Bijv. 4%%75 = 4

Proost


Antwoord 3, autoriteit 5%

%%in R rendement rest
bijvoorbeeld:

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

Other episodes