A partir del script de análisis de imágenes digitales para la obtención de los índices (MIG & ANISO) y otros datos EXIfr, se obtienen hojas de datos “crudas”, las cuales se deben de ordenar para su posterior análisis.
Este documento indica los pasos a seguir para lograr el objetivo:
Inicio de sesión:
setwd("C:/Users/Mechas/Desktop/Structural complexity Osa/data/DATOS AGUA BUENA_2")
getwd()
## [1] "C:/Users/Mechas/Desktop/Structural complexity Osa/data/DATOS AGUA BUENA_2"
data <- read.csv("RIOCAM16_2.csv",h=T,stringsAsFactors = F)
head(data)
## i ID MIG.grey Aniso.grey Timestamp
## 1 1 RIOCAM16 (1).JPG 0.1241611 0.9566505 2016-12-07 17:12:02
## 2 2 RIOCAM16 (10).JPG 0.1214629 0.9701398 2016-12-07 17:12:20
## 3 3 RIOCAM16 (100).JPG 0.1953213 0.9755125 2016-12-07 17:12:38
## 4 4 RIOCAM16 (101).JPG 0.2031725 0.9807273 2016-12-07 17:12:56
## 5 5 RIOCAM16 (102).JPG 0.2638353 0.9829455 2016-12-07 17:13:14
## 6 6 RIOCAM16 (103).JPG 0.1466838 0.9706843 2016-12-07 17:13:31
## DateAndTime
## 1 2015:07:16 11:00:11
## 2 2015:07:17 13:00:01
## 3 2015:07:30 12:00:01
## 4 2015:07:30 13:00:01
## 5 2015:07:30 14:00:01
## 6 2015:07:31 08:00:01
Identidad Cámara:
Función a continuación agrega una columna más a la hoja de datos con el número de la cámara, el cluster y el PLOT que le indiquemos:
for (i in 1:nrow(data)){
data$CAM[i] <- paste(16)
data$Cluster[i] <- paste("AB")
data$PLOT[i] <- paste("RIO")
}
head(data)
## i ID MIG.grey Aniso.grey Timestamp
## 1 1 RIOCAM16 (1).JPG 0.1241611 0.9566505 2016-12-07 17:12:02
## 2 2 RIOCAM16 (10).JPG 0.1214629 0.9701398 2016-12-07 17:12:20
## 3 3 RIOCAM16 (100).JPG 0.1953213 0.9755125 2016-12-07 17:12:38
## 4 4 RIOCAM16 (101).JPG 0.2031725 0.9807273 2016-12-07 17:12:56
## 5 5 RIOCAM16 (102).JPG 0.2638353 0.9829455 2016-12-07 17:13:14
## 6 6 RIOCAM16 (103).JPG 0.1466838 0.9706843 2016-12-07 17:13:31
## DateAndTime CAM Cluster PLOT
## 1 2015:07:16 11:00:11 16 AB RIO
## 2 2015:07:17 13:00:01 16 AB RIO
## 3 2015:07:30 12:00:01 16 AB RIO
## 4 2015:07:30 13:00:01 16 AB RIO
## 5 2015:07:30 14:00:01 16 AB RIO
## 6 2015:07:31 08:00:01 16 AB RIO
Fecha y Hora:
Debido a que tenemos una hoja de datos “cruda” obtenida a partir de un script diferente, debemos de separar la columna DateAndTime en dos columnas distintas, una que contenga Date y otra que contenga Time
library(tidyr)
data<-separate(data,col=DateAndTime,into=c("Date","Time"),sep=" ")
head(data)
## i ID MIG.grey Aniso.grey Timestamp Date
## 1 1 RIOCAM16 (1).JPG 0.1241611 0.9566505 2016-12-07 17:12:02 2015:07:16
## 2 2 RIOCAM16 (10).JPG 0.1214629 0.9701398 2016-12-07 17:12:20 2015:07:17
## 3 3 RIOCAM16 (100).JPG 0.1953213 0.9755125 2016-12-07 17:12:38 2015:07:30
## 4 4 RIOCAM16 (101).JPG 0.2031725 0.9807273 2016-12-07 17:12:56 2015:07:30
## 5 5 RIOCAM16 (102).JPG 0.2638353 0.9829455 2016-12-07 17:13:14 2015:07:30
## 6 6 RIOCAM16 (103).JPG 0.1466838 0.9706843 2016-12-07 17:13:31 2015:07:31
## Time CAM Cluster PLOT
## 1 11:00:11 16 AB RIO
## 2 13:00:01 16 AB RIO
## 3 12:00:01 16 AB RIO
## 4 13:00:01 16 AB RIO
## 5 14:00:01 16 AB RIO
## 6 08:00:01 16 AB RIO
Una vez separadas las columnas, tenemos de indicarle a R cómo debe de interpretar las fechas dándole un formato y almacenándolo en una nueva columna:
date <- data$Date
Rdate <- strptime(as.character(date),"%Y:%m:%d")
data <- data.frame(data,Rdate)
head(data)
## i ID MIG.grey Aniso.grey Timestamp Date
## 1 1 RIOCAM16 (1).JPG 0.1241611 0.9566505 2016-12-07 17:12:02 2015:07:16
## 2 2 RIOCAM16 (10).JPG 0.1214629 0.9701398 2016-12-07 17:12:20 2015:07:17
## 3 3 RIOCAM16 (100).JPG 0.1953213 0.9755125 2016-12-07 17:12:38 2015:07:30
## 4 4 RIOCAM16 (101).JPG 0.2031725 0.9807273 2016-12-07 17:12:56 2015:07:30
## 5 5 RIOCAM16 (102).JPG 0.2638353 0.9829455 2016-12-07 17:13:14 2015:07:30
## 6 6 RIOCAM16 (103).JPG 0.1466838 0.9706843 2016-12-07 17:13:31 2015:07:31
## Time CAM Cluster PLOT Rdate
## 1 11:00:11 16 AB RIO 2015-07-16
## 2 13:00:01 16 AB RIO 2015-07-17
## 3 12:00:01 16 AB RIO 2015-07-30
## 4 13:00:01 16 AB RIO 2015-07-30
## 5 14:00:01 16 AB RIO 2015-07-30
## 6 08:00:01 16 AB RIO 2015-07-31
Eliminiar columnas innecesarias:
Una vez que hemos creado columnas con datos necesarios para su posterior análisis y con la finalidad de no tener mucho ruido en la hoja de datos, es recomendable eliminar aquellas columnas con datos “crudos” que no necesitaremos:
data <- data[,-c(1,2,5,6)]
head(data)
## MIG.grey Aniso.grey Time CAM Cluster PLOT Rdate
## 1 0.1241611 0.9566505 11:00:11 16 AB RIO 2015-07-16
## 2 0.1214629 0.9701398 13:00:01 16 AB RIO 2015-07-17
## 3 0.1953213 0.9755125 12:00:01 16 AB RIO 2015-07-30
## 4 0.2031725 0.9807273 13:00:01 16 AB RIO 2015-07-30
## 5 0.2638353 0.9829455 14:00:01 16 AB RIO 2015-07-30
## 6 0.1466838 0.9706843 08:00:01 16 AB RIO 2015-07-31
Guardar .csv
La hoja de datos preparada la debemos de guardar en .csv para trabajar con ella en futuros análisis:
write.csv(data,"rio16.csv",col.names =T)
Unir hojas:
Una vez todas las hojas ordenadas, limpias y homogéneas, se pueden unir en un solo set Para esto es necesario que se encuentren guardadas en una sola carpeta sin ningún otro tipo de archivo.
Si se ha seguido el procedimiento anterior de manera igual en cada una de las hojas, todas deben de tener el mismo formato, y por lo tanto la unión de las mismas no presentará problema alguno:
setwd("C:/Users/Mechas/Desktop/Structural complexity Osa/data/DATOS AGUA BUENA_2/Datos_listos")
getwd()
## [1] "C:/Users/Mechas/Desktop/Structural complexity Osa/data/DATOS AGUA BUENA_2/Datos_listos"
filenames <- list.files(full.names=TRUE)
All <- lapply(filenames,function(i){
read.csv(i, header=TRUE)
})
data <- do.call(rbind.data.frame, All)
write.csv(data,"AguaBuena_2.csv")
head(data)
## X MIG.grey Aniso.grey Time CAM Cluster PLOT Rdate
## 1 1 0.16058539 0.9804378 13:47:25 10 AB BS 2015:07:16
## 2 2 0.09156283 0.9646204 14:47:25 10 AB BS 2015:07:16
## 3 3 0.10221846 0.9624906 08:00:01 10 AB BS 2015:07:17
## 4 4 0.08324869 0.9470460 09:00:01 10 AB BS 2015:07:17
## 5 5 0.10789798 0.9323613 10:00:01 10 AB BS 2015:07:17
## 6 6 0.10798830 0.9516732 11:00:01 10 AB BS 2015:07:17
Una vez realizado el procedimiento anterior, nos queda un solo archivo .csv con todos los valores de todas las cámaras que hayamos incluido.