Crear DataFrame fila por fila en R

En este artículo, discutiremos cómo crear un marco de datos fila por fila en el lenguaje de programación R.

Método 1: uso de métodos de indexación y bucle for

Se puede crear un marco de datos vacío en lenguaje R usando el método data.frame() en R. Para mayor claridad, los tipos de datos de las columnas se pueden definir durante la declaración. Cada fila del marco de datos es un vector que consta de valores que pertenecen a diferentes columnas. La i -ésima fila en el marco de datos se puede asignar a este vector. 

Sintaxis:

trama de datos[ i, ] <- vec

Las filas se agregan al final del marco de datos. La adición de filas también se puede realizar en un bucle for, con iteraciones de bucle equivalentes al número de filas que se van a agregar. La longitud del vector adjunto debe ser equivalente al número de columnas en el marco de datos. 

Ejemplo:

R

# declaring an empty data frame
data_frame = data.frame(
  col1 = numeric(), col2 = character(),stringsAsFactors = FALSE)
print ("Original dataframe")
print (data_frame)
 
# appending rows to the data frame
for(i in 1:3) {                      
   
  # creating a vector to append to
  # data frame
  vec <- c(i+1, LETTERS[i])    
  
  # assigning this vector to ith row
  data_frame[i, ] <- vec          
}
 
print ("Modified dataframe")
print (data_frame)

Producción

[1] "Original dataframe"
[1] col1 col2
<0 rows> (or 0-length row.names)
[1] "Modified dataframe"
 col1 col2
1    2    A
2    3    B
3    4    C

Método 2: Uso de la inserción manual

Las filas en un marco de datos vacío también se pueden insertar utilizando la referencia de índice de fila. Después de cada iteración, se agrega una nueva fila al marco de datos. Se realizan modificaciones en el marco de datos original.

Ejemplo:

R

# declaring an empty data frame
data_frame = data.frame(col1 = numeric(),
                        col2 = character(),
                        stringsAsFactors = FALSE)
 
print ("Original dataframe")
print (data_frame)
 
# appending rows to the data frame
data_frame[1,] <- c(1,"firstrow")
 
print ("Dataframe : Iteration 1")
print (data_frame)
 
# appending rows to the data frame
data_frame[2,] <- c(2,"secondrow")
print ("Dataframe : Iteration 2")
print (data_frame)
 
data_frame[3,] <- c(3,"thirdrow")
print ("Dataframe : Iteration 3")
print (data_frame)

Producción

[1] "Original dataframe"
[1] col1 col2
<0 rows> (or 0-length row.names)
[1] "Dataframe : Iteration 1"
 col1     col2
1    1 firstrow
[1] "Dataframe : Iteration 2"
 col1      col2
1    1  firstrow
2    2 secondrow
[1] "Dataframe : Iteration 3"
 col1      col2
1    1  firstrow
2    2 secondrow
3    3  thirdrow

El número actual de filas del marco de datos se puede capturar mediante el método nrow(dataframe). Se puede agregar una fila individual al marco de datos en el índice nrow(df)+1. 

Sintaxis:

df[ nrow(df)+1, ] <- vec

Ejemplo:

R

# declaring an empty data frame
data_frame = data.frame(col1 = c(2:3),
                        col2 = letters[1:2],
                        stringsAsFactors = FALSE)
 
print ("Original dataframe")
print (data_frame)
 
# appending rows at the end
vec <- c(8,"n")
data_frame[nrow(data_frame)+1,] <- vec
 
print ("Modified dataframe")
print (data_frame)

Producción

[1] "Original dataframe"
 col1 col2
1    2    a
2    3    b
[1] "Modified dataframe"
 col1 col2
1    2    a
2    3    b
3    8    n

Método 3: Usar el método rbind()

El método rbind() se usa para vincular vectores u objetos de marcos de datos para formar un objeto más grande. Inicialmente, podemos crear un marco de datos vacío y luego definir una nueva fila usando un vector y vincular la fila declarada al marco de datos usando el método rbind(). La nueva fila se añade al final. Los tipos de datos de la fila deben ser compatibles con los tipos de datos declarados para el marco de datos original. Esto se puede encerrar dentro de un bucle para vincular filas durante cada iteración del bucle. 

Sintaxis:

enlazar(df , vec)

Ejemplo:

R

# declaring an empty data frame
data_frame = data.frame(col1 = numeric(),
                        col2 = character(),
                        stringsAsFactors = FALSE)
 
print ("Original dataframe")
print (data_frame)
 
# appending rows at the end
vec <- c(8,"n")
 
# binding row at the end of the data frame
data_frame <- rbind(data_frame,vec,stringsAsFactors = FALSE)
 
print ("Modified dataframe")
print (data_frame)

Producción

[1] "Original dataframe"
[1] col1 col2
<0 rows> (or 0-length row.names)
[1] "Modified dataframe"
  X.8. X.n.
1    8    n

También se puede crear un marco de datos fila por fila, utilizando operaciones repetidas de rbind() en el marco de datos en el bucle for, con un número de iteraciones equivalente al número de filas a insertar.

Ejemplo:

R

# declaring an empty data frame
data_frame = data.frame(col1 = numeric(),
                        col2 = character(),
                        stringsAsFactors = FALSE)
 
print ("Original dataframe")
print (data_frame)
 
# appending rows at the end
for(i in 1:3) {
   
  # creating a vector to append
  # to data frame
  vec <- c(i, LETTERS[i])
  
  # assigning this vector to ith row
  data_frame <- rbind(data_frame,vec,stringsAsFactors=FALSE)
}
 
print ("Modified dataframe")
print (data_frame)

Producción

[1] "Original dataframe"
[1] col1 col2
<0 rows> (or 0-length row.names)
[1] "Modified dataframe"
  X.1. X.A.
1    1    A
2    2    B
3    3    C

Publicación traducida automáticamente

Artículo escrito por codersgram9 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 *