Non ci sono capiti prima. Dalla pagina aiuto di pairs.panels
nel pacchetto psych
, si trova la seguente:Qual è il nome di questo trucco della sintassi e dove è documentato?
data(iris)
pairs.panels(iris[1:4],bg=c("red","yellow","blue")[iris$Species],pch=21)
voglio chiedere informazioni su questo argomento, che imposta il colore di sfondo dei cerchi disegnati per i punti dati: bg=c("red","yellow","blue")[iris$Species]
Chiaramente, questo argomento soci i 3 livelli di iris$Species
, un fattore, con i 3 colori indicati. Non sto chiedendo cosa faccia.
Mi chiedo in che modo viene chiamato questo modo di associare gli argomenti passati con i livelli di dati e dove è documentato? Sembra una magia R
. Se stavo scrivendo questa funzione, probabilmente passerei i colori e il nome della colonna del fattore separatamente e quindi renderò manualmente l'associazione dietro le quinte. Questo trucco potrebbe essere molto utile. Ma a prima vista [iris$Species]
sembra che i dati si stiano indicizzando da soli. Ad esempio, non è possibile digitare [iris$Species]
nella console, ma solo dare un errore. È possibile digitare c("red","yellow","blue")[iris$Species]
e ottenere la risposta corretta. Sembra che potrebbe esserci qualche riciclaggio in corso, ma non ne sono sicuro. Sarei curioso di sapere dove è documentato e se qualcuno può spiegare cosa sta succedendo in una breve frase o due. Ad esempio, [iris$Species]
viene convertito in numero intero, quindi viene utilizzato per indicizzare l'elenco di 3 colori? Sto pensando che sia così, ma mi piacerebbe un'altra opinione.
Nota: lo stesso trucco è utilizzato in graphics::pairs
su cui è basato panels.pairs
.
La fonte C per questo "trucco" può essere trovato qui: https://github.com/wch/r-source/blob/trunk/src/main/subset.c –
Grazie Ferdinand . –