Los notebook son cuadernos de ejercicios que permiten mezclar código con texto y visualizarlo correctamente en un navegador web.
Para ejecutar un fragmento de código dentro de R Studio hay que presionar el botón Run de la parte superior del fragmento de código o colocar el cursor dentro de ese espacio y presionar Ctrl+Shift+Enter. Intenta ejecutar la siguiente instrucción.
plot(cars);
Para agregar un nuevo fragmento de código, presina el bóton de Insert Chunk en la barra de herramientas o la combinación de teclas Ctrl+Alt+I.
Como en este tipo de archivos se comprende de etiquetas Markdown, para insertar títulos se utilizan los #
Realiza los siguientes ejercicios e inserta un bloque de código para cada respuesta.
Guarda 2022 en la variable costo
Guarda el entero 07 en la variable mes
Guarda e imprime “¿A cuánto el kilo de pera?”
Escribe en un archivo un vector con un la siguiente
información:
[35, 26.25, 17, 45.59, 100, 12 + 2i]
Lee el archivo que acabas de crear y asigna los siguientes nombres a
las columnas:
Jupiter, Saturno, Urano, Neptuno, Kasiopea, Pluton
El objeto vector crea una variable de tipo vector que sólo puede contener datos de la misma clase. Algunos métodos para crear vectores son los siguientes:
explisito <- c(1,2,34);
explisito;
serienum <- 1:5;
serienum;
serienum2 <- sequence(5)
serienum3 <- sequence(4:8)
serienum4 <- sequence(c(10,5))
serienum2;serienum3;serienum4;
serienum5 <- seq(from=4, to=12, by=3)
serienum5;
repeticion <- rep(0, 4);
repeticion2 <- vector("numeric", 5)
repeticion3 <- vector("logical", 4)
repeticion; repeticion2; repeticion3;
niveles1 <- gl(3,5)
niveles2 <- gl(3,5, length = 30)
niveles3 <- gl(2,6,labels = c("Macho", "Hembra"))
niveles4 <- gl(3,4, labels = c("blanco", "negro", "rojo"), length = 36)
niveles1; niveles2; niveles3; niveles4;
El objeto matriz es un vector con el atributo de dimensión (dim). Una matriz se puede crear con el comando matrix:
matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL);
El parámetro byrow indica el orden de llenado del data frame por la variable data. Si es falso, será horizontal y si es verdadero, será vertical. El parámetro dimnames permite asignar nombres a las filas y columnas.
matrix(data = 5, nr=2, nc=5);
matrix(data = 1:6, nr=2, nc=3);
matrix(data = 1:6, nr=2, nc=3, byrow = TRUE);
matrix(data=gl(2,3,labels = c("macho", "hembra"), length = 16), nr=4, nc=4, byrow = FALSE, dimnames = list(letters[1:4], letters[16:19]))
Otra forma de crear una matriz es asignando el valor de la variable dim a un vector
v = 1:15
v
dim(v)
dim(v) = c(5, 3)
v;
Crea una matriz con las relaciones mes-cumpleaños de los alumnos de la clase
matrix(NA, nrow = 3, ncol=3);
calendario = matrix(data=0, nrow = 12, ncol = 12)
View(calendario)
meses = c("enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre")
colnames(calendario) = meses
nombres = c("Ale", "Vic", "Gaby")
# rownames(calendario) = nombres #Esto da un error porque no tiene el mismo tamaño
nombresVacios = rep("Un nombre", 9)
nombres = c(nombres, nombresVacios)
rownames(calendario) = nombres;
View(calendario)
Vicmails <- c(0,1,12,6,8,6,2,1,1,11,10, 134)
calendario["Ale", "julio"] = 1
calendario["Vic",] = Vicmails
alejandro = vector("numeric", 11)
nombres <- c("Vic", "Gaby", "Eli", "Ivan", "Diana", "Orlando", "Juan Manuel", "Juan Carlos", "Melina", "Noemi", "José Luis" )
names(alejandro) <- nombres
alejandro <- c(1, 2, 0, 0, 3, 6, 1, 10, 3, 0, 1)
alejandro
Extra tip: Con la función data.entry podemos editar de manera gráfica los datos de un objeto
data.entry(calendario)
View(calendario);
Los marcos de datos se pueden crear de manera implícita con la función read.table() y de manera explísita con la función data.farame. Lo que pide como argumentos de entrada son vectores del mismo tamaño o con un tamaño que se pueda repetir una cantidad exacta de veces.
vcol <- c("azul", "rojo", "amarillo", "verde")
vcol1 <- 1:4
data.frame(vcol, vcol1); #Esta operación crea un data frame concatenando columnas
vcol2 <- "contenido"
data.frame(vcol1, vcol2);
vcol3 <- c(1,0,2)
vcol4 <- sequence(1:5)
data.frame(vcol4, vcol3);
data.frame("colores"=vcol, "estatus"=vcol2, "registro"=vector("logical", 4))
dfcolores <- data.frame("estatus"=vcol2, "registro"=vector("logical", 4), row.names = vcol)
dfcolores;
dfcolores[4, 2]
dfcolores["verde",]$registro
Para agregar una nueva columna a un dataframe se puede agregar con la misma función de data.frame o direccionando a una nueva llave de columna
undataframe <- data.frame(c("uno", "dos"), c(0,0))
undataframe
nvodataframe <- data.frame(undataframe, c(T,F))
nvodataframe
nvodataframe["columna4"] <- c(3i, 0i)
nvodataframe;
Para agregar registros a un data frame se agrega directamente en el último renglón del dataframe se asigna el vector al último renglón más uno. El vector debe ser del mismo tamaño que las columnas que tiene el dataframe base
nrow(nvodataframe) #Esta función nos dice el número del último renglón de un dataframe
nvodataframe[nrow(nvodataframe)+1, ] <- data.frame("tres", 0, T, 4+5i)
nvodataframe
# También podemos agregar con una lista, por ejemplo:
nvodataframe[nrow(nvodataframe)+1, ] <- list("cuatro", 0, F, 1+0i)
nvodataframe;
Las listas permiten agrupar elementos de distinta clase y formar de esta forma estructuras de datos complejas.
vnum <- c(1:7)
vletras <- c("alfa", "beta", "teta", "delta", "omega")
matriz <- matrix(1:12, ncol=4)
lista <- list(vnum , vletras, matriz)
vnum; vletras; lista
Ya hemos visto que podemos leer un archivo con el comando scan(). Este comano va a buscar un archivo en el directorio de trabajo que estemos. Para conocer este directorio de trabajo o establecer uno personalizado, los comandos son:
# Obtención del directorio de trabajo
getwd()
# Establecimiento de un directorio de trabajo
# setwd("El directorio que desees")
Además de scan, también podemos leer archivos con el comando read.table. Este comando nos permite leer el archivo y acomodarlo como un marco de datos o data frame. El grupo de funciones de read, también incluye: - read.csv - read.csv2 - read.delim - read.delim2
La lectura con read.table abre de forma automática un marco de datos
directoriodetrabajo = getwd()
paste(directoriodetrabajo, "fb_posts.txt", sep = "/")
publicaciones.soloread <- read.table("/Volumes/Perita/UAM/TPP/fb_posts.txt")
publicaciones.separador <- read.table("fb_posts.txt", sep=" ")
View(publicaciones.soloread);View(publicaciones.separador);
De los vectores
a <- c(2,3,6,8)
b <- c(8,7,4,2)
a+b
Entre el contenido del vector
sum(b)
b-a
a*b
b*3
prod(a)
sqrt(b*3)
El máximo de un grupo de datos
max(b)
El mínimo de un grupo de datos
min(b)
El rango de los datos
range(a)
La media de un grupo
mean(a)
La mediana de un grupo
median(a)
Varianza
var(a)
Se pueden comparar los elementos de un vector
a > median(a)