Questa è una domanda per principianti.Alza al potere in R
Qual è la differenza tra
^
e**
? Per esempio:2^10 [1] 1024 2 ** 10 [1] 1024
Esiste una funzione come
power(x,y)
?
Questa è una domanda per principianti.Alza al potere in R
Qual è la differenza tra ^
e **
? Per esempio:
2^10
[1] 1024
2 ** 10
[1] 1024
Esiste una funzione come power(x,y)
?
1: Nessuna differenza. È tenuto in giro per consentire al vecchio codice S di continuare a funzionare. Questo è documentato una "Nota" in ?Math
2: Sì: Ma tu già lo sai:
`^`(x,y)
#[1] 1024
in R gli operatori matematici sono funzioni davvero che il parser si prende cura di riordinare gli argomenti e nomi di funzioni per simulare la notazione matematica infissa ordinaria. Anche documentato a ?Math
.
Edit: Vorrei aggiungere che il saper R gestisce operatori infissi (cioè due funzioni argomenti) è molto importante per capire l'uso del infisso fondamentale "[[" e "[" -Funzioni come (funzionali) il secondo argomento a lapply
e sapply
:
> sapply(list(list(1,2,3), list(4,3,6)), "[[", 1)
[1] 1 4
> firsts <- function(lis) sapply(lis, "[[", 1)
> firsts(list(list(1,2,3), list(4,3,6)))
[1] 1 4
Wow, la funzione con notazione prefisso è una piccola sorpresa! Grazie! – Nick
Interessante che '\' ** \ '(2,10)' non funziona. – thelatemail
D'accordo, è una sorpresa. 'is.function (' '' ** '' '') # Errore: oggetto '**' non trovato' (c'erano dei backtick all'interno di quelle parentesi). –
' '**'': '** si traduce nel parser per ^' – rawr
@rawr Grazie. Avrei dovuto leggere l'intera pagina della documentazione. Dice: '** è tradotto nel parser in ^, ma questo non è documentato da molti anni. ... ' – Nick
Inserendo' ** 'alla riga di comando si ottiene anche' Errore: imprevisto '^' in "**" ' – thelatemail