Vorrei ottenere la media per determinate colonne per ogni riga.Come posso ottenere la media (media) delle colonne selezionate
devo questi dati:
w=c(5,6,7,8)
x=c(1,2,3,4)
y=c(1,2,3)
length(y)=4
z=data.frame(w,x,y)
che restituisce:
w x y
1 5 1 1
2 6 2 2
3 7 3 3
4 8 4 NA
vorrei ottenere la media per determinate colonne, non tutti di loro. Il mio problema è che ci sono un sacco di NA nei miei dati. Quindi, se ho voluto la media di X e Y, questo è ciò che vorrei tornare:
w x y mean
1 5 1 1 1
2 6 2 2 2
3 7 3 3 3
4 8 4 NA 4
Credo che avrei potuto fare qualcosa di simile z$mean=z$x+z$y/2
ma l'ultima riga per Y è NA così ovviamente non voglio l'AN da calcolare e non dovrei dividermi per due. Ho provato cumsum
ma questo restituisce NA quando c'è una sola NA in quella riga. Immagino di dover cercare qualcosa che aggiunga le colonne selezionate, ignori le NA, ottenga il numero di colonne selezionate che non hanno NA e dividono per quel numero. Ho provato ?? media e ?? media e sono completamente perplesso.
ETA: C'è anche un modo per aggiungere un peso a una colonna specifica?
Grazie, questo è esattamente quello che sto cercando. Ho davvero bisogno di studiare questo magico comando di applicare, sembra che sia una soluzione a tutto. – thequerist