1 Cambio de directorio de trabajo

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")

2 Lectura de datos en R

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

2.1 Importar datos a mano construyendo vectores

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")

2.2 Importar (o exportar) datos ya disponibles R

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

2.3 Importar datos desde un archivo .txt

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.

2.4 Otras cosas interesantes:

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")