Rstudio:
Uso de número complejos
Clases de datos:
Numéricos
Enteros (Integer)
Complex
Character (“”)
Logical (True/false)
Almacenamiento de datos: <- equivalente a =
Is.integer (or another type of datos); is.character
R se mueve con vectores:
z <- c(5,8,12,4,5,7); donde c parece un concatenar pero no lo es
z[x] jala el componente x del vector
z[x:y] del componente x al y
length(z)
*Existe una jerarquía en los componentes (1.character, 2.complex, 3.numeric, 4.integer,
5.logical)
En vez de concatenar podemos usar seq(from x, to y, by z)
Install.packages(“package”) y library para usar el paquete de comandos preinstalado en R
all.equal(x1,x2,t=0) verifica de acorde a tolerancias y los componentes del vector son
iguales
data.framename <- data.frame(lo que deseas se pone en una tabla)
si deseo una columna uso el nombre de la base$columna
*max y min de un vector suelta el “” y “” del vector
si hay NA en el data frame: puedes crear una base de datos agregándole
read_csv(“….”, na=(“N/A”,” ”)
Para rename puedes hacerlo a mano con la función rem(data.frame, “nombres”…)
Usando col_names: c(…….), skip=1 para que no se vuelva parte del data frame el
nombre
Mutate(dataframe, columm == “smth”, replace with (type of data!!), sino mantenlo
igual)
Pasar de character a numeric con as.character
Select selección solo lo que pides
Parse solo considera el número dentro
Si solo quiero seleccionar unas variables: select(dataframe, !c(…)
Si usamos %>% sirve para no crear tablas intermedias. Permite poner varias
condiciones a la vez. Permite ya no poner la base de datos inicial en mutate.
Usamos parse_number
Si quieres que no cuente los NA(más que infinito) pones una condición de
na.rm=TRUE
write.csv para exportar
filter: filtra las observaciones con ciertas condiciones (& and)(| or)
El %in% verifica condiciones dentro de los datos, si cumple eso te los devuelve.
Funciona como un or, dentro del mecanismo verifica con true or false si cumple.
Si quieres extraer los datos que contengan NA, R no entenderá si igualas la
columna con NA. Se usa is.na().
No olvidar que el ! permite agarrar los diferentes a esa columna
Arrange: como el gsort. Con jerarquia (1,2,3….)
Desc permite ordenar de manera descendente.
Distinct permite separar ciertos datos únicos que indiques de las columnas
Si agregas más indicaciones lo hará por pares,….
Count cuenta las observaciones repetidas de los datos que pidas
Usar sort=TRUE en count ordena todas las cantidades de mayor a menor
Group by:
Agrupa datos por condiciones
Case when: ayuda a poner varias condiciones
.before=n pone lo que pides antes de la columna n
Slice extrae la cantidad de filas que deseas
Slice min y max permite no ordenar previo a la extración de las celdas
Ungroup:
Tras varios groups by permite que se trate por separado varias condiciones para la
extracción
Arrays:
(n filas, n columnas, n matrices)
Tablas:
Table(dataframe$variable)
Sort(table, decreasing=TRUE)
Prop.table(table1)*100 (para porcentaje)
100*prop.table(table, margin 1(filas suman 100%) y 2 (columnas)
Pivot:
*Longer:
- Tabla_long <- table |> pivot_longer(cols=c() or matches(“..”), names_to = (“nombre de la
columna nueva”), values_to = (“nombre de la columna con valores”) puedes usar
names_prefix=”” para eliminar un prefijo de la exvariable y values_drop_na=TRUE para
eliminar NA.
*Wider.
- tabla_wider <- table |> pivot_wider(nada porque solo cambia los que no son variables)
names_from=… (sin comillas porque ahora es una variable), values_from=…(same as
before)
Str_detect:
Permite reconocer textos que contengan una palabra en particular. Puede ser útil
en filter.
Factor:
Defines los niveles que puede tener una variable
Aplicas x_factor = factor(x,levels=levelsquedefiniste)
Una versión más estricta de tidyverse te mostrará error si está mal escrito parte del
vector
Unique() también puede funcionar
Gráficos:
Calcula lo que necesites, luego agregas ggplot(aes(x=””,y=””), geom_line()
Ggplot(dataframe, aes(x=prom_tv,y=relig))+geom_...() en este caso geom_point()
soltaba un gráfico con puntos de los promedios
Si quieres reordenar las categorías, hacemos uso de fct_order(variable, en base a
qué deseas organizarlo)
Si quieres renombrar un las categorías aplicas fact_recode(variable, “..” “…”) Los
niveles que no cambien quedan tal cual
Joins:
Relocate(variable, before or after (variable)
L_join <- left_join(x=df1,y=df2), join_by(carrier==air)) Las observaciones del Df1 se
mantienen a la izquierda, mientras que los del Df2 a la derecha. Los que no hagan
match del df2 se eliminan (NA)
I_join <- inner_join(x=df1,y=df2), join_by(carrier=air)) Solo se queda con la
intersección de las observaciones de ambos data.frames
Full_join se queda con la unión de ambas observaciones de data.frames
R_join: Prioriza el df2 y, literalmente, elimina la fila que no haga match con los de la
derecha
Semi_join: Te devuelve las filas que harán join con el df2
Anti_join: Te devuelve las filas que no harán join con el df2
Ambos no sirve como un join, solo te listea los candidatos a ser unidos