Indexación y división de marcos de datos en R

En este artículo, analicemos la indexación y el corte de los marcos de datos en R.

Indexación del marco de datos

Al indexar el marco de datos, obtendremos los datos de la columna en particular. La indexación se puede realizar especificando el nombre de la columna entre corchetes. La sintaxis para indexar el marco de datos es-

dataframeName[“columnName”]

Ejemplo: en este ejemplo, vamos a crear un marco de datos «estadísticas» que contenga carreras anotadas y wickets tomados por un jugador y realicemos una indexación en el marco de datos para extraer las carreras anotadas por los jugadores.

R

# create a data frame 
stats <- data.frame(player=c('A', 'B', 'C', 'D'),
                runs=c(100, 200, 408, NA),
                wickets=c(17, 20, NA, 5))
  
print("stats Dataframe")
stats
  
# fetch data in certain column
stats["runs"]

Producción:

"stats Dataframe"
  player runs wickets
1      A  100      17
2      B  200      20
3      C  408      NA
4      D   NA       5
  runs
1  100
2  200
3  408
4   NA

Cortar el marco de datos

Cortar el marco de datos proporciona las filas y columnas requeridas. Esto se puede hacer de tres maneras. Se enumeran a continuación-

  • Rebanar con [ , ]
  • Rebanar con vectores lógicos.
  • Cortar con subconjunto().

Rebanar con [ , ]

Cortar el marco de datos con [ , ] devuelve datos de filas y columnas especificadas. La sintaxis de esto se menciona a continuación:

dataframeName[ fromRow : toRow , columnNumber]

Ejemplo: 

En el siguiente código, realizamos un corte en el marco de datos para obtener filas y columnas específicas.

R

# create a data frame 
stats <- data.frame(player=c('A', 'B', 'C', 'D'),
                runs=c(100, 200, 408, NA),
                wickets=c(17, 20, NA, 5))
  
print("stats Dataframe")
stats
  
# fetch 2,3 rows and 1,2 columns
stats[2:3,c(1,2)]
  
# fetch 1:3 rows of 1st column
cat("players - ")
stats[1:3,1]

Producción

"stats Dataframe"
  player runs wickets
1      A  100      17
2      B  200      20
3      C  408      NA
4      D   NA       5
  player runs
2      B  200
3      C  408
players - [1] "A" "B" "C"

Rebanar con vectores lógicos

Podemos realizar cortes en los datos especificando las condiciones lógicas. Se utiliza para obtener los datos filtrados.

Ejemplo:

 En este ejemplo, buscamos los registros de los jugadores que anotaron más de 100 carreras.

R

# create a data frame 
stats <- data.frame(player=c('A', 'B', 'C', 'D'),
                runs=c(100, 200, 408, 23),
                wickets=c(17, 20, 3, 5))
  
print("stats Dataframe")
stats
  
# fetch player details who scores 
# more than 100 runs
batsmens<-stats[stats$runs>100,]
batsmens

 Producción

"stats Dataframe"
  player runs wickets
1      A  100      17
2      B  200      20
3      C  408       3
4      D   23       5
  player runs wickets
2      B  200      20
3      C  408       3

Cortar con subconjunto() 

Podemos cortar marcos de datos usando el método subset(). El método de subconjunto acepta los datos, la lógica de filtro para dividir y las columnas para obtener. La sintaxis de cortar con subconjunto es:

subconjunto( x = marco de datos, subconjunto = filter_logic, select=c(columnNames))

Ejemplo: 

En el siguiente código, buscamos a los jugadores que eligieron más de 5 wickets de las estadísticas del marco de datos cortando el marco de datos usando el método de subconjunto.

R

# create a data frame 
stats <- data.frame(player=c('A', 'B', 'C', 'D'),
                runs=c(100, 200, 408, 23),
                wickets=c(17, 20, 3, 5))
  
print("stats Dataframe")
stats
  
# fetch player details who pick 
# more than 5 wickets
subset(x=stats, subset=wickets>5, select=c(player,wickets))

Producción

"stats Dataframe"
  player runs wickets
1      A  100      17
2      B  200      20
3      C  408       3
4      D   23       5
  player wickets
1      A      17
2      B      20

Publicación traducida automáticamente

Artículo escrito por akhilvasabhaktula03 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *