Una de las primeras cosas que necesitamos hacer es conocer dónde se encuentra nuestro directorio de trabajo y cómo cambiarlo. En el directorio de trabajo es donde almacenaremos nuestros sets de datos y donde guardaremos los resultados de lo que vayamos generando o analizando en R. Las dos funciones más importantes para esto son:
getwd() # Permite consultar por el directorio de trabajo
## [1] "C:/Users/Julia/Documents/CURSOS/CURSO R GBIF 2019/Tema2_ 2019"
# setwd() # Permite hacer un cambio en el directorio de trabajo. Es obligado definir el nuevo directorio, y atención porque la barra es así /
# Pongo un ejemplo absurdo:
setwd("C:/Users/Julia/Documents")
Para hacer la lectura de daots en R, os dejo en primer lugar un enlace interesante en Cran https://cran.r-project.org/doc/manuals/R-data.html
La forma más sencilla pero también más laboriosa es introducir los datos a mano, a partir de la construcción de vectores
salary <- c(18700000,14626720,14137500,13980000,12916666)
position <- c("QB","QB","DE","QB","QB")
team <- c("Colts","Patriots","Panthers","Bengals","Giants")
name.last <- c("Manning","Brady","Pepper","Palmer","Manning")
name.first <- c("Peyton","Tom","Julius","Carson","Eli")
También podemos construir un “arreglo de datos” o “marco de datos” o como se conoce mejor, un data frame a partir de vectores
salarios <- data.frame(name.last,name.first,team,position,salary)
salarios
## name.last name.first team position salary
## 1 Manning Peyton Colts QB 18700000
## 2 Brady Tom Patriots QB 14626720
## 3 Pepper Julius Panthers DE 14137500
## 4 Palmer Carson Bengals QB 13980000
## 5 Manning Eli Giants QB 12916666
Algunas funciones útiles:
ls() # sirve para hacer una lista de objetos que tenemos guardados en nuestra sesión o "environment"
## [1] "name.first" "name.last" "position" "salarios" "salary"
## [6] "team"
ls(pattern = "sala") # buscar objetos que cumplen un patrón determinado
## [1] "salarios" "salary"
rm(list=ls()[4]) # sirve para eliminar objetos de la lista
Otra función que necesitamos conocer es “save.image()”. Nos permite guardar la sesión para trabajar en ella más adelante. También es una forma de guardar nuestros datos para luego importarlos.
# Debes sustituir aquí el directorio y nombre de archivo
# save.image("C:/Users/Julia/Desktop/CURSO R GBIF/TEMA 2/Tema2_JULIA.RData")
Por ejemplo, si no queremos guardar toda la sesión podemos utilizar la función “save()” para salvar objetos determinados que nos interesen. Por ejemplo, nuestro set de datos.
save(salarios, file="salarios.RData")
Podemos importar datos o más bien cargar datos que ya están disponibles en R. Muchos paquetes de R contienen datos que nos permiten correr los ejemplos de ayuda.
data("iris") # Cargar datos ya disponibles en R. Te acostumbrarás a los datos "iris"
head(iris) # visualizar una parte de la tabla unicamente la parte de arriba (6 primeras líneas)
## 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
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
También podemos exportar una tabla de datos con la función write.table() Te aconsejo que aprendas y te acostumbres cuanto antes a utilizar la función help(), para consultar las opciones de las funciones y cómo utilizarlas. Además, suelen traer ejemplos que funcionan.
help("write.table")
write.table(iris, file="iris.txt") # Nos permite guardar la tabla en nuestra carpeta (o lo que es lo mismo, en el working directory o directorio de trabajo)
ls() # hacer una lista de objetos guardados en la sesión
## [1] "iris" "name.first" "name.last" "position" "salary"
## [6] "team"
rm(list=ls()[1]) # Así eliminamos el primer elemento de nuestra lista de objetos
La función read.table() nos permite entre otras cosas importar datos desde un archivo .txt Veamos como, utilizando el .txt que guardé anteriormente:
# Ejemplo: data <- read.table("/nombre del directorio/Ejemplo 1.txt", header=T, sep="\t")
data <- read.table("iris.txt", header=T)
head(data)
## 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
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
iris <- data # puedes llamarlo como quieras, iris, cosa...
Importante: La función read.table puede fallar cuando hay espacios enrte los nombres de las variables o dentro de los niveles de un factor. Para evitar esto, se deberían reemplazar todos los espacios de nombres por puntos o guiones bajos, o simplemente eliminarlos.
Puedes importar datos con la función read.table() simplemente haciendo copia-pega desde un archivo Excel Los datos deben estar limpios de espacios y preparados. Seleccionas los datos con sus encabezados (nombres de las variables), los copias y una vez almacenados en el “clipboard” (o sea, copiados) haces esto:
data_excel <- read.table("clipboard", header=T) # haciendo copy-paste
Otras funciones interesantes que necesitas conocer o recordar:
ls() # para ver la lista de objetos guardados en la sesión
## [1] "data" "iris" "name.first" "name.last" "position"
## [6] "salary" "team"
# rm(list=ls()) # esto elimina toda la lista de objetos guardados. Lo pongo con una almohadilla delante para que no corra. Podeis comprobarlo sin almohadilla
names(data)
## [1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
## [5] "Species"
dim(data)
## [1] 150 5
head(data)
## 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
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
tail(data)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica
colnames(data)
## [1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
## [5] "Species"
rownames(data)
## [1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11"
## [12] "12" "13" "14" "15" "16" "17" "18" "19" "20" "21" "22"
## [23] "23" "24" "25" "26" "27" "28" "29" "30" "31" "32" "33"
## [34] "34" "35" "36" "37" "38" "39" "40" "41" "42" "43" "44"
## [45] "45" "46" "47" "48" "49" "50" "51" "52" "53" "54" "55"
## [56] "56" "57" "58" "59" "60" "61" "62" "63" "64" "65" "66"
## [67] "67" "68" "69" "70" "71" "72" "73" "74" "75" "76" "77"
## [78] "78" "79" "80" "81" "82" "83" "84" "85" "86" "87" "88"
## [89] "89" "90" "91" "92" "93" "94" "95" "96" "97" "98" "99"
## [100] "100" "101" "102" "103" "104" "105" "106" "107" "108" "109" "110"
## [111] "111" "112" "113" "114" "115" "116" "117" "118" "119" "120" "121"
## [122] "122" "123" "124" "125" "126" "127" "128" "129" "130" "131" "132"
## [133] "133" "134" "135" "136" "137" "138" "139" "140" "141" "142" "143"
## [144] "144" "145" "146" "147" "148" "149" "150"
Y por ultimo, recuerda que puedes guardar los objetos en un workspace o sesión de R. Guardando toda la sesión con save.image() o seleccionando objetos determinados con save(). Comprobar siempre antes el directorio de trabajo.
save.image(file=“fichero.RData”)
save(x1,x2,…,file=“fichero.RData”)
También puedes cargar una sesión de trabajo completa con la función load()
load("Tema2_JULIA.RData")