varias tablas studio seleccionar graficos graficas filtrar filas datos data contar r max

tablas - ¿Cómo encontrar el valor más alto de una columna en un marco de datos en R?



tablas en r (10)

Tengo el siguiente marco de datos al que llamé ozono:

Ozone Solar.R Wind Temp Month Day 1 41 190 7.4 67 5 1 2 36 118 8.0 72 5 2 3 12 149 12.6 74 5 3 4 18 313 11.5 62 5 4 5 NA NA 14.3 56 5 5 6 28 NA 14.9 66 5 6 7 23 299 8.6 65 5 7 8 19 99 13.8 59 5 8 9 8 19 20.1 61 5 9

Me gustaría extraer el valor más alto de ozone , Solar.R , Wind ...

Además, si es posible, ¿cómo clasificaría Solar.R o cualquier columna de este marco de datos en orden descendente?

Lo intenté

max(ozone, na.rm=T)

Lo que me da el valor más alto en el conjunto de datos.

Tambien lo he intentado

max(subset(ozone,Ozone))

pero tiene "subset" must be logical."

Puedo configurar un objeto para contener el subconjunto de cada columna, mediante los siguientes comandos

ozone <- subset(ozone, Ozone >0) max(ozone,na.rm=T)

pero da el mismo valor de 334, que es el valor máximo del marco de datos, no la columna.

Cualquier ayuda sería genial, gracias.


Aquí hay una solución dplyr :

library(dplyr) # find max for each column summarise_each(ozone, funs(max(., na.rm=TRUE))) # sort by Solar.R, descending arrange(ozone, desc(Solar.R))

ACTUALIZACIÓN: summarise_each() ha sido desaprobado en favor de una familia de funciones con más características: mutate_all() , mutate_at() , mutate_if() , summarise_all() , summarise_at() , summarise_if()

Aquí es cómo puedes hacer:

# find max for each column ozone %>% summarise_if(is.numeric, funs(max(., na.rm=TRUE)))%>% arrange(Ozone)

o

ozone %>% summarise_at(vars(1:6), funs(max(., na.rm=TRUE)))%>% arrange(Ozone)


En respuesta a la búsqueda del valor máximo para cada columna, puede intentar usar la función apply() :

> apply(ozone, MARGIN = 2, function(x) max(x, na.rm=TRUE)) Ozone Solar.R Wind Temp Month Day 41.0 313.0 20.1 74.0 5.0 9.0


Hay un paquete matrixStats que proporciona algunas funciones para hacer resúmenes de columnas y filas, vea en la vignette del paquete, pero debe convertir su data.frame en una matriz.

Luego ejecuta: colMaxs(as.matrix(ozone))


Otra forma sería usar? Pmax

do.call(''pmax'', c(as.data.frame(t(ozone)),na.rm=TRUE)) #[1] 41.0 313.0 20.1 74.0 5.0 9.0


Para obtener el máximo de cualquier columna desea algo como:

max(ozone$Ozone, na.rm = TRUE)

Para obtener el máximo de todas las columnas, desea:

apply(ozone, 2, function(x) max(x, na.rm = TRUE))

Y ordenar:

ozone[order(ozone$Solar.R),]

O para ordenar la otra dirección:

ozone[rev(order(ozone$Solar.R)),]


Pruebe esta solución:

Oz<-subset(data, data$Month==5,select=Ozone) # select ozone value in the month of #May (i.e. Month = 5) summary(T) #gives caracteristics of table( contains 1 column of Ozone) including max, min ...


Similar a colMeans , colSums , etc., puede escribir una función de columna máxima, colMax , y una función de ordenación de columnas, colSort .

colMax <- function(data) sapply(data, max, na.rm = TRUE) colSort <- function(data, ...) sapply(data, sort, ...)

Utilizo ... en la segunda función con la esperanza de provocar su intriga.

Obtenga sus datos:

dat <- read.table(h=T, text = "Ozone Solar.R Wind Temp Month Day 1 41 190 7.4 67 5 1 2 36 118 8.0 72 5 2 3 12 149 12.6 74 5 3 4 18 313 11.5 62 5 4 5 NA NA 14.3 56 5 5 6 28 NA 14.9 66 5 6 7 23 299 8.6 65 5 7 8 19 99 13.8 59 5 8 9 8 19 20.1 61 5 9")

Use la función colMax en los datos de muestra:

colMax(dat) # Ozone Solar.R Wind Temp Month Day # 41.0 313.0 20.1 74.0 5.0 9.0

Para hacer la clasificación en una sola columna,

sort(dat$Solar.R, decreasing = TRUE) # [1] 313 299 190 149 118 99 19

y sobre todas las columnas use nuestra función colSort ,

colSort(dat, decreasing = TRUE) ## compare with ''...'' above


Suponiendo que sus datos en data.frame llaman maxinozone , puede hacer esto

max(maxinozone[1, ], na.rm = TRUE)


max(ozone$Ozone, na.rm = TRUE) debería hacer el truco. Recuerde incluir el valor de na.rm = TRUE contrario, R devolverá NA.


max(may$Ozone, na.rm = TRUE)

Sin $Ozone , se filtrará en todo el marco de datos, esto se puede aprender en la biblioteca de swirl.

También estoy estudiando este curso en Coursera ~