Primero debemos preparar los archivos de ejemplo:
# definir directorio a donde guardar los archivos
directorio <- "DIRECCION_DONDE_DESEA_GUARDAR_LOS ARCHIVOS_DE_EJEMPLO"
# guardar archivos
download.file(url = "https://github.com/maRce10/ucr_r_avanzado/raw/master/additional_files/datos_camara_submarina.zip",
destfile = file.path(directorio, "datos_camara_submarina.zip"))
# extraerlos del zip
unzip(zipfile = file.path(directorio, "datos_camara_submarina.zip"),
exdir = directorio)
# hacer vector con nombre y direccion de archivos
archivos_txt <- list.files(path = directorio, full.names = TRUE, pattern = "TXT$")
También pueden bajar el archivo directamente de este enlance. Recuerde extraer los archivos y hacer el vector con los nombres de los archivos (correr líneas de la 9 a la 13).
Si todo salió bien el vector “archivos_txt” debería tener 19 elementos:
## [1] 19
for
que devuelva el número de especies
para cada archivo (y si, es lo mismo que hicimos en clase)resultados <- vector() # vector vacio
for (i in archivos_txt) {
# inicio del bucle
txt <- read.table(i, header = TRUE, skip = 4, sep = "\t") # leer archivo
nrw <- nrow(txt) # calcular numero de filas
resultados <- append(resultados, nrw) # guardar resultados en vector vacio
}
resultados
## [1] 39 1 2 12 14 9 12 8 32 36 21 12 22 27 29 19 8
## [18] 12 26
for
que devuelva el número de familias
para cada archivoresultados_fam <- vector() # vector vacio
for (i in archivos_txt) {
# inicio del bucle
txt <- read.table(i, header = TRUE, skip = 4, sep = "\t") # leer archivo
nfam <- length(unique(txt$Family)) # calcular numero de familias
resultados_fam <- append(resultados_fam, nfam) # guardar resultados en vector vacio
}
n_filas_df <- data.frame(archivo = basename(archivos_txt), especies = resultados,
familias = resultados_fam)
n_filas_df
archivo | especies | familias |
---|---|---|
2022-09-02_R3-LcamT3-RcamN4_Pel1_2021-09-24_MaxN.TXT | 39 | 19 |
2022-09-03_S6-LB13-RB12_PuntaMariaOeste_2022-03-24_MaxN.TXT | 1 | 1 |
2022-09-03_T4-LB19-RB18_PuntaMariaOeste_2022-03-24_MaxN.TXT | 2 | 2 |
2022-09-04_S1-LB10-RN9_Arco2_2022-07-15_MaxN.TXT | 12 | 8 |
2022-09-07_P1-LB12-RB13_Gissler_2022-03-30_MaxN.TXT | 14 | 7 |
2022-09-11_P1-LB14-RB13_Risco_2022-03-26_MaxN.TXT | 9 | 5 |
2022-09-12_S6-LN4-RN8_Chatham_2022-03-28_MaxN.TXT | 12 | 5 |
2022-09-14_R2C4_Catalinas1_21-7-2021_MaxN.TXT | 8 | 5 |
2022-09-14_S2C4_Virador1-20-7-2021_MaxN.TXT | 32 | 20 |
2022-09-14_S6-LB7-RB8_Silverado_2022-03-28_MaxN.TXT | 36 | 16 |
2022-09-15_S6-LB9-RB11_Vikinga_2022-03-30_MaxN.TXT | 21 | 14 |
2022-09-15_T4-LcamT8-RcamOFI-5_Barlovento2_2021-10-17_MaxN.TXT | 12 | 7 |
2022-09-16_S2C8_Bajo Rojo1_2021-07-28_MaxN.TXT | 22 | 18 |
2022-09-16_T4-LcamN5-RcamT6_ISJ2_2021-09-25_MaxN.TXT | 27 | 19 |
2022-09-17_SB3-LcamT4-RcamN6_CanalSJ_2021-09-25_MaxN.TXT | 29 | 15 |
2022-09-20_T3C7_Dampier2_2021-10-19_MaxN.TXT | 19 | 9 |
2022-09-22_T4-LN9-RT1_Bautista_2022-03-26_MaxN.TXT | 8 | 5 |
2022-09-24_T4-LcamT3-RcamSN7_Esfinge2_2021-10-17_MaxN.TXT | 12 | 6 |
2022-09-25_T3C2_SJ2_2021-09-25_MaxN.TXT | 26 | 18 |
for
para
extraer esta información de los archivos.resultados <- vector() # vector vacio
for (i in archivos_txt) {
# inicio del bucle
txt <- read.table(i, header = TRUE, skip = 4, sep = "\t") # leer archivo
fecha <- txt$Date[1] # calcular numero de familias
resultados <- append(resultados, fecha) # guardar resultados en vector vacio
}
n_filas_df$fecha <- resultados
for
para extraer esta información de los
archivos.resultados <- vector() # vector vacio
for (i in archivos_txt) {
# inicio del bucle
txt <- read.table(i, header = TRUE, skip = 4, sep = "\t") # leer archivo
prof <- txt$Depth[1] # calcular numero de familias
resultados <- append(resultados, prof) # guardar resultados en vector vacio
}
resultados <- gsub(" m", "", resultados)
resultados <- gsub("\\,", ".", resultados)
n_filas_df$profundidad <- as.numeric(resultados)
Note que la columna de profundidad no es numérica. Puede usar el siguiente código para convertir profundidad a un vector numérico (se necesita para el siguiente punto):
cor.test()
)##
## Pearson's product-moment correlation
##
## data: n_filas_df$especies and n_filas_df$profundidad
## t = -0.5, df = 17, p-value = 0.6
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.546 0.352
## sample estimates:
## cor
## -0.122
##
## Pearson's product-moment correlation
##
## data: n_filas_df$familias and n_filas_df$profundidad
## t = -1, df = 17, p-value = 0.3
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.619 0.252
## sample estimates:
## cor
## -0.229
Información de la sesión
## R version 4.1.1 (2021-08-10)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.2 LTS
##
## Matrix products: default
## BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0
##
## locale:
## [1] LC_CTYPE=es_ES.UTF-8
## [2] LC_NUMERIC=C
## [3] LC_TIME=es_CR.UTF-8
## [4] LC_COLLATE=es_ES.UTF-8
## [5] LC_MONETARY=es_CR.UTF-8
## [6] LC_MESSAGES=es_ES.UTF-8
## [7] LC_PAPER=es_CR.UTF-8
## [8] LC_NAME=C
## [9] LC_ADDRESS=C
## [10] LC_TELEPHONE=C
## [11] LC_MEASUREMENT=es_CR.UTF-8
## [12] LC_IDENTIFICATION=C
##
## attached base packages:
## [1] stats graphics grDevices utils datasets
## [6] methods base
##
## other attached packages:
## [1] DT_0.23 tufte_0.12
## [3] rticles_0.24 revealjs_0.9
## [5] rmdformats_1.0.4 rmarkdown_2.14
## [7] sketchy_1.0.2 remotes_2.4.2
## [9] leaflet_2.1.1 car_3.1-0
## [11] carData_3.0-5 sjPlot_2.8.10
## [13] lmerTest_3.1-3 lme4_1.1-29
## [15] Matrix_1.3-4 scales_1.2.0
## [17] MASS_7.3-54 emo_0.0.0.9000
## [19] viridis_0.6.2 viridisLite_0.4.0
## [21] xaringanExtra_0.7.0 ggplot2_3.3.6
## [23] RColorBrewer_1.1-3 kableExtra_1.3.4
## [25] knitr_1.39
##
## loaded via a namespace (and not attached):
## [1] minqa_1.2.4 colorspace_2.0-3
## [3] ellipsis_0.3.2 rsconnect_0.8.26
## [5] sjlabelled_1.2.0 rprojroot_2.0.3
## [7] estimability_1.3 parameters_0.18.1
## [9] fs_1.5.2 rstudioapi_0.13
## [11] farver_2.1.1 fansi_1.0.3
## [13] mvtnorm_1.1-3 lubridate_1.8.0
## [15] xml2_1.3.3 splines_4.1.1
## [17] cachem_1.0.6 sjmisc_2.8.9
## [19] pkgload_1.2.4 jsonlite_1.8.0
## [21] nloptr_2.0.3 ggeffects_1.1.2
## [23] packrat_0.8.0 broom_0.8.0
## [25] effectsize_0.7.0 compiler_4.1.1
## [27] httr_1.4.3 backports_1.4.1
## [29] sjstats_0.18.1 emmeans_1.7.4-1
## [31] assertthat_0.2.1 fastmap_1.1.0
## [33] cli_3.3.0 formatR_1.12
## [35] htmltools_0.5.3 prettyunits_1.1.1
## [37] tools_4.1.1 coda_0.19-4
## [39] gtable_0.3.0 glue_1.6.2
## [41] dplyr_1.0.9 Rcpp_1.0.9
## [43] jquerylib_0.1.4 vctrs_0.4.1
## [45] svglite_2.1.0 nlme_3.1-152
## [47] crosstalk_1.2.0 insight_0.17.1
## [49] xfun_0.31 stringr_1.4.0
## [51] ps_1.7.1 brio_1.1.3
## [53] testthat_3.1.4 rvest_1.0.2
## [55] lifecycle_1.0.1 devtools_2.4.3
## [57] ragg_1.2.2 yaml_2.3.5
## [59] memoise_2.0.1 gridExtra_2.3
## [61] sass_0.4.1 stringi_1.7.8
## [63] highr_0.9 bayestestR_0.12.1
## [65] desc_1.4.1 boot_1.3-28
## [67] pkgbuild_1.3.1 rlang_1.0.4
## [69] pkgconfig_2.0.3 systemfonts_1.0.4
## [71] evaluate_0.15 lattice_0.20-44
## [73] purrr_0.3.4 htmlwidgets_1.5.4
## [75] labeling_0.4.2 processx_3.6.1
## [77] tidyselect_1.1.2 bookdown_0.27
## [79] magrittr_2.0.3 R6_2.5.1
## [81] generics_0.1.2 DBI_1.1.3
## [83] pillar_1.8.0 withr_2.5.0
## [85] mgcv_1.8-36 abind_1.4-5
## [87] datawizard_0.4.1 tibble_3.1.8
## [89] performance_0.9.0 modelr_0.1.8
## [91] crayon_1.5.1 uuid_1.1-0
## [93] utf8_1.2.2 usethis_2.1.6
## [95] grid_4.1.1 isoband_0.2.5
## [97] callr_3.7.0 digest_0.6.29
## [99] webshot_0.5.3 xtable_1.8-4
## [101] tidyr_1.2.0 numDeriv_2016.8-1.1
## [103] textshaping_0.3.6 munsell_0.5.0
## [105] bslib_0.3.1 sessioninfo_1.2.2