La disposición tabular de filas y columnas para formar un marco de datos en el lenguaje de programación R admite muchas formas de acceder y modificar los datos. La aplicación de consultas y funciones agregadas, como min, max y count, se puede realizar fácilmente sobre los valores de celda del marco de datos. Por lo tanto, es relativamente muy fácil acceder a un subconjunto del marco de datos en función de los valores contenidos en la celda.
Ejemplo 1: determinar la fila con el valor mínimo o máximo en función de los valores completos del marco de datos.
Se realiza una iteración sobre las celdas del marco de datos, utilizando dos bucles para cada fila y columna del marco de datos, respectivamente. El valor de la celda se compara con los valores inicial mínimo y máximo respectivamente y se actualiza en caso de que el valor satisfaga la restricción. Además, se declara una variable para mantener el índice de fila actual cumpliendo la condición. Luego, se accede a la fila en este índice del marco de datos. La complejidad del tiempo es polinomial con respecto al tamaño del marco de datos.
R
# declaring a data frame in R data_frame = data.frame(C1 = c(5:8), C2 = c(1:4), C3 = c(9:12), C4 = c(13:16)) print("Original data frame") print(data_frame) # declaring initial values for min and max min = 32767 max = -32767 min_row_indx = 0 max_row_indx = 0 # looping over the data frame values for (i in 1:nrow(data_frame)){ # for-loop over columns for(j in 1:ncol(data_frame)) { # checking if the dataframe # cell value is less than minimum if(data_frame[i,j]<min){ # replacing the minimum # with the smaller value min = data_frame[i,j] # updating the row with the # smallest value found uptil now min_row_indx = i } # checking if the data frame # cell value is more than maximum if(data_frame[i,j]>max){ # replacing the minimum # with the smaller value max = data_frame[i,j] # updating the row with the # smallest value found uptil now max_row_indx = i } } } # printing the row with minimum value print ("Row with minimum value in the data frame") print (data_frame[min_row_indx,]) # printing the row with maximum value print ("Row with maximum value in the data frame") print (data_frame[max_row_indx,])
Producción:
[1] "Original data frame" C1 C2 C3 C4 1 5 1 9 13 2 6 2 10 14 3 7 3 11 15 4 8 4 12 16 [1] "Row with minimum value in the data frame" C1 C2 C3 C4 1 5 1 9 13 [1] "Row with maximum value in the data frame" C1 C2 C3 C4 4 8 4 12 16
Ejemplo 2: Determinación de la fila con valor mínimo o máximo en función de una columna de marco de datos
La función which.min() en R se puede usar para calcular el mínimo de todos los valores en el objeto especificado como argumento, ya sea una lista, una array o un marco de datos. De manera similar, which.max() calcula el mayor de todos los valores. Para seleccionar una columna particular del marco de datos, usamos df$colname y luego aplicamos esto como un índice del marco de datos para extraer la fila completa con la función agregada especificada. Este enfoque se puede aplicar a todos los tipos de datos, numéricos, strings y factores. La complejidad de tiempo requerida es lineal con respecto a la longitud de la columna, ya que accedemos y comparamos directamente todos los valores de esta columna en particular.
La siguiente sintaxis en R se usa para extraer la fila con el valor mínimo o máximo en la columna especificada en el argumento:
Sintaxis: df[cuál.min(df$nombrecol),]
Argumentos:
- df – Data Frame para extraer el valor mínimo o máximo de
- colname: nombre de columna para considerar calcular el mínimo o el máximo.
Devuelve: la fila con el valor de celda máximo o mínimo en la columna en particular.
Código:
R
# declaring a data frame in R data_frame = data.frame(C1 = c(1:4), C2 = c( 5:8), C3 = c(9:12), C4 = c(13:16)) print("Original data frame") print(data_frame) # extracting the row with # maximum value in C2 column print ("Row with max C2 value") data_frame[which.max(data_frame$C2),] # extracting the row with # minimum value in C4 column print ("Row with min C4 value") data_frame[which.min(data_frame$C4),]
Producción:
[1] "Original data frame" C1 C2 C3 C4 1 1 5 9 13 2 2 6 10 14 3 3 7 11 15 4 4 8 12 16 [1] "Row with max C2 value" C1 C2 C3 C4 4 4 8 12 16 [1] "Row with min C4 value" C1 C2 C3 C4 1 1 5 9 13
En caso de que el marco de datos contenga valores variables de tipo string, el mínimo y el máximo se calculan al clasificar estos datos lexicográficamente.
R
# declaring a data frame in R data_frame = data.frame(C1= c("a","b","c","d"), C2= c("geeks","dataframe","in","R"), C3= c(9:12),C4=c(13:16)) print("Original data frame") print(data_frame) # extracting the row with maximum value in # C2 column print ("Row with max C1 value") data_frame[which.max(data_frame$C1),] # extracting the row with minimum value in # C4 column print ("Row with min C2 value") data_frame[which.min(data_frame$C2),]
Producción
[1] "Original data frame" C1 C2 C3 C4 1 a geeks 9 13 2 b dataframe 10 14 3 c in 11 15 4 d R 12 16 [1] "Row with max C1 value" C1 C2 C3 C4 4 d R 12 16 [1] "Row with min C2 value" C1 C2 C3 C4 2 b dataframe 10 14