ficha <- list(nombre = "John Doe",
              edad = 28)
ficha$edad[1] 28Una lista de un solo tipo de elemento
v <- c(1, 2, 3, 4)Una lista que puede contener distintos tipos de elementos
ficha <- list(nombre = "John Doe",
              edad = 28)
ficha$edad[1] 28x <- factor(c("Alfa", "Gamma", "Beta"),
            levels = c("Alfa", "Beta", "Gamma", "Delta"),
            ordered = TRUE)Una lista de vectores o factores con el mismo número de valores.
df <- data.frame()Al indexar un dataframe se utiliza, entre dobles corcchetes, el número de filas y columnas: df[row, column]
| Índice | Resultado | 
|---|---|
| df[1, ] | la primera fila | 
| df[ ,1] | la primera columna | 
| df[ , ] | todo | 
m <- matrix(c(1,2,3,4), nrow=2)Las matrices se rellena de columna en columna.
En RStudio hay formas sencillas de importar y exportar.
read.csv("file.csv",
         sep = ",",
         header = TRUE,
         stringsAsFactors = TRUEwrite.csv(data, file = "data.csv",
          row.names = FALSE)%in sirve para ver si un valor está contenido en otro (un vector, habitualmente):
people <- c("Anna", "Bob", "Charlie", "Diana")
girl <- c("Anna", "Diana")
girl_names <- people %in% girl
table(girl_names)girl_names
FALSE  TRUE 
    2     2 gmodels::CrossTable(people, girl_names,
                    chisq = TRUE)Warning in chisq.test(t, correct = FALSE, ...): Chi-squared approximation may
be incorrect
 
   Cell Contents
|-------------------------|
|                       N |
| Chi-square contribution |
|           N / Row Total |
|           N / Col Total |
|         N / Table Total |
|-------------------------|
 
Total Observations in Table:  4 
 
             | girl_names 
      people |     FALSE |      TRUE | Row Total | 
-------------|-----------|-----------|-----------|
        Anna |         0 |         1 |         1 | 
             |     0.500 |     0.500 |           | 
             |     0.000 |     1.000 |     0.250 | 
             |     0.000 |     0.500 |           | 
             |     0.000 |     0.250 |           | 
-------------|-----------|-----------|-----------|
         Bob |         1 |         0 |         1 | 
             |     0.500 |     0.500 |           | 
             |     1.000 |     0.000 |     0.250 | 
             |     0.500 |     0.000 |           | 
             |     0.250 |     0.000 |           | 
-------------|-----------|-----------|-----------|
     Charlie |         1 |         0 |         1 | 
             |     0.500 |     0.500 |           | 
             |     1.000 |     0.000 |     0.250 | 
             |     0.500 |     0.000 |           | 
             |     0.250 |     0.000 |           | 
-------------|-----------|-----------|-----------|
       Diana |         0 |         1 |         1 | 
             |     0.500 |     0.500 |           | 
             |     0.000 |     1.000 |     0.250 | 
             |     0.000 |     0.500 |           | 
             |     0.000 |     0.250 |           | 
-------------|-----------|-----------|-----------|
Column Total |         2 |         2 |         4 | 
             |     0.500 |     0.500 |           | 
-------------|-----------|-----------|-----------|
 
Statistics for All Table Factors
Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 =  4     d.f. =  3     p =  0.2614641 
 lapplyList apply - aplica una función a una lista de vectores. Cuando se aplica a un dataframe, lo hace a cada uno de los elementos.
Se puede utilizar para normalizar todos los valores de un dataframe:
normalize <- function(x) {
    return ((x - min(x)) / (max(x) - min(x)))
}
normalized_df <- as.data.frame(lapply(old_df, normalize))
# Hay que convertirlo en un data frame de nuevo porque 'lapply'
# devuelve una lista