Dato un frame di dati di esempio:Calcolare la fila significa da sottoinsieme di colonne
C1<-c(3,2,4,4,5)
C2<-c(3,7,3,4,5)
C3<-c(5,4,3,6,3)
DF<-data.frame(ID=c("A","B","C","D","E"),C1=C1,C2=C2,C3=C3)
DF
ID C1 C2 C3
1 A 3 3 5
2 B 2 7 4
3 C 4 3 3
4 D 4 4 6
5 E 5 5 3
Qual è il modo migliore per creare un secondo frame di dati che contengono la colonna ID
e la media di ogni riga? Qualcosa di simile a questo:
ID Mean
A 3.66
B 4.33
C 3.33
D 4.66
E 4.33
Qualcosa di simile a:
RM<-rowMeans(DF[,2:4])
Mi piacerebbe mantenere i mezzi in linea con le loro ID
's.
Grazie. Si noti inoltre da 'class (DF)' che non _lose_ il 'data.frame', nel senso che qualsiasi funzione che cerca un oggetto' data.frame' deve accettare 'DF' dopo' setDT' (specialmente ora che 'data.table' è sul lato maturo) – MichaelChirico
E se invece volessi la media delle righe solo tra C2 e C3? – user3841581
Quindi è possibile utilizzare 'DF [,. (Mean = rowMeans (.SD)), da = ID, .SDcols = c (" C2 "," C3 ")]'. L'argomento '.SDcols' determina quali colonne vuoi includere in' .SD'. @ user3841581 – BenBarnes