Dataframe

1. Creación de dataframe

Creación de un dataframe a partir de vectores.

# Creacion de vectores
nombres <- c("Ana", "Beatriz", " Carmen", " Diana")
edad <- c(22, 26, 20, 23)
estatura <- c(1.64, 1.65, 1.61, 1.66)
soltera <- c(F, F, T, F)
# Creacion de dataframe
df <- data.frame(nombres, edad, estatura, soltera)
df
  nombres edad estatura soltera
1     Ana   22     1.64   FALSE
2 Beatriz   26     1.65   FALSE
3  Carmen   20     1.61    TRUE
4   Diana   23     1.66   FALSE
class(df)
[1] "data.frame"

Importación desde un paquete de R.

df_iris <- iris
head(df_iris, 3)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa

2. Selección de elementos

a. Seleccionar filas

Seleccionar 1 fila

fila1 <- df_iris[5, ]
fila1
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
5            5         3.6          1.4         0.2  setosa

Seleccionar varias filas consecutivas

fila2 <- df_iris[10:15, ]
fila2
   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
10          4.9         3.1          1.5         0.1  setosa
11          5.4         3.7          1.5         0.2  setosa
12          4.8         3.4          1.6         0.2  setosa
13          4.8         3.0          1.4         0.1  setosa
14          4.3         3.0          1.1         0.1  setosa
15          5.8         4.0          1.2         0.2  setosa

Seleccionar filas intercaladas

fila3 <- df_iris[c(5,10,15,20,25), ]
fila3
   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
5           5.0         3.6          1.4         0.2  setosa
10          4.9         3.1          1.5         0.1  setosa
15          5.8         4.0          1.2         0.2  setosa
20          5.1         3.8          1.5         0.3  setosa
25          4.8         3.4          1.9         0.2  setosa

b. Seleccionar columnas

Seleccionar 1 columna

col1 <- df_iris[3]
head(col1, n=3)
  Petal.Length
1          1.4
2          1.4
3          1.3

Seleccionar varias columnas consecutivas

col2 <- df_iris[3:5]
head(col2, n=3)
  Petal.Length Petal.Width Species
1          1.4         0.2  setosa
2          1.4         0.2  setosa
3          1.3         0.2  setosa

Seleccionar columnas intercaladas

col3 <- df_iris[c(1,3,5)]
head(col3, n=3)
  Sepal.Length Petal.Length Species
1          5.1          1.4  setosa
2          4.9          1.4  setosa
3          4.7          1.3  setosa

Seleccionar todas las columnas excepto un grupo determinado

# Todas las columnas menos la columna 3 y 4
col4 <- df_iris[-c(3,4)]
head(col4, n=3)
  Sepal.Length Sepal.Width Species
1          5.1         3.5  setosa
2          4.9         3.0  setosa
3          4.7         3.2  setosa

Seleccionar filas y columnas

# Columnas 1, 2 y 5 /  Filas 25 a la 30
col5 <- df_iris[c(25:30),c(1,2,5)]
col5
   Sepal.Length Sepal.Width Species
25          4.8         3.4  setosa
26          5.0         3.0  setosa
27          5.0         3.4  setosa
28          5.2         3.5  setosa
29          5.2         3.4  setosa
30          4.7         3.2  setosa

3. Extracción de información

Número de columnas

ncol(df_iris)
[1] 5

Número de filas

nrow(df_iris)
[1] 150

Nombres de las columnas

colnames(df_iris)
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"     

Nombres de las filas

head(rownames(df_iris), n=10)
 [1] "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10"

Resumen estadístico

summary(df_iris)
  Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
 Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
 1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
 Median :5.800   Median :3.000   Median :4.350   Median :1.300  
 Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
 3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
 Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
       Species  
 setosa    :50  
 versicolor:50  
 virginica :50  
                
                
                

4. Modificacion de filas y columnas

df
  nombres edad estatura soltera
1     Ana   22     1.64   FALSE
2 Beatriz   26     1.65   FALSE
3  Carmen   20     1.61    TRUE
4   Diana   23     1.66   FALSE

a. Agregar columnas

Agregar una nueva columna al final

# Nueva columna
peso_kg <- c(62, 58, 59, 65)
df$peso <- peso_kg
df
  nombres edad estatura soltera peso
1     Ana   22     1.64   FALSE   62
2 Beatriz   26     1.65   FALSE   58
3  Carmen   20     1.61    TRUE   59
4   Diana   23     1.66   FALSE   65

b. Cambiar posiciones de las columnas

df <- df[c(1,5,2,3,4)]
df
  nombres peso edad estatura soltera
1     Ana   62   22     1.64   FALSE
2 Beatriz   58   26     1.65   FALSE
3  Carmen   59   20     1.61    TRUE
4   Diana   65   23     1.66   FALSE

c. Eliminar columnas

# Eliminar columna 2 y 4
df <- df[-c(2,4)]
df
  nombres edad soltera
1     Ana   22   FALSE
2 Beatriz   26   FALSE
3  Carmen   20    TRUE
4   Diana   23   FALSE

d. Agregar filas

# Nueva fila
fila <- list("Elena", 25, TRUE)
df <- rbind(df, fila)
df
  nombres edad soltera
1     Ana   22   FALSE
2 Beatriz   26   FALSE
3  Carmen   20    TRUE
4   Diana   23   FALSE
5   Elena   25    TRUE

e. Cambiar posición de filas

df <- df[c(5,4,3,2,1),]
df
  nombres edad soltera
5   Elena   25    TRUE
4   Diana   23   FALSE
3  Carmen   20    TRUE
2 Beatriz   26   FALSE
1     Ana   22   FALSE

f. Eliminar filas

# Eliminar fila 2 y 5
df <- df[-c(2,5),]
df
  nombres edad soltera
5   Elena   25    TRUE
3  Carmen   20    TRUE
2 Beatriz   26   FALSE

5. Modificación de valores

Modificar los valores de una columna

# Modificar los valores de la columna EDAD
df$edad <- c(23,28,24)
df
  nombres edad soltera
5   Elena   23    TRUE
3  Carmen   28    TRUE
2 Beatriz   24   FALSE

Modificar los valores de una fila

# Modificar los valores de la fila 2
df[2,] <- list("Clara", 22, FALSE)
df
  nombres edad soltera
5   Elena   23    TRUE
3   Clara   22   FALSE
2 Beatriz   24   FALSE

Modificar los valores de una celda

# Modificar la fila 3 y columna 1
df[3,1] <- "Blanca"
df
  nombres edad soltera
5   Elena   23    TRUE
3   Clara   22   FALSE
2  Blanca   24   FALSE
Back to top