varias una tablas tabla seleccionar graficas filtrar filas eliminar ejemplos datos data contar como columnas r dataframe

una - Calcular medios de fila en un subconjunto de columnas



tablas en r (4)

Comenzando con su marco de datos DF , podría usar el paquete data.table :

library(data.table) ## EDIT: As suggested by @MichaelChirico, setDT converts a ## data.frame to a data.table by reference and is preferred ## if you don''t mind losing the data.frame setDT(DF) # EDIT: To get the column name ''Mean'': DF[, .(Mean = rowMeans(.SD)), by = ID] # ID Mean # [1,] A 3.666667 # [2,] B 4.333333 # [3,] C 3.333333 # [4,] D 4.666667 # [5,] E 4.333333

Dado un marco de datos de muestra:

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

¿Cuál es la mejor manera de crear un segundo marco de datos que contendría la columna ID y la media de cada fila? Algo como esto:

ID Mean A 3.66 B 4.33 C 3.33 D 4.66 E 4.33

Algo similar a:

RM<-rowMeans(DF[,2:4])

Me gustaría mantener los medios alineados con sus ID .


Puede crear una nueva fila con $ en su marco de datos correspondiente a los Medios

DF$Mean <- rowMeans(DF[,2:4])


Usando dplyr :

library(dplyr) # exclude ID column then get mean DF %>% transmute(ID, Mean = rowMeans(select(., -ID)))

O

# select the columns to include in mean DF %>% transmute(ID, Mean = rowMeans(select(., C1:C3))) # ID Mean # 1 A 3.666667 # 2 B 4.333333 # 3 C 3.333333 # 4 D 4.666667 # 5 E 4.333333


Calcular medios de fila en un subconjunto de columnas:

Cree un nuevo data.frame que especifique la primera columna de DF como una columna llamada ID y calcule la media de todos los otros campos en esa fila, y la ponga en la columna titulada ''Means'':

data.frame(ID=DF[,1], Means=rowMeans(DF[,-1])) ID Means 1 A 3.666667 2 B 4.333333 3 C 3.333333 4 D 4.666667 5 E 4.333333