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