1.1. Carga de directorio & paquetes

1.2. Carga de datos

# 4 agosto 
data1 <- read.delim("C:/Users/jmgon/OneDrive - Instituto Forestal/INFOR/3. Propuestas De Proyectos/NIR - CTPF/NutriSpec/Trabajo exploratorio Flavia/1-59.txt", header=FALSE, comment.char="#")

# 5 agosto
data2 <- read.delim("C:/Users/jmgon/OneDrive - Instituto Forestal/INFOR/3. Propuestas De Proyectos/NIR - CTPF/NutriSpec/Trabajo exploratorio Flavia/60-110.txt", header=FALSE, comment.char="#")

# 6 agosto 
data3 <- read.delim("C:/Users/jmgon/OneDrive - Instituto Forestal/INFOR/3. Propuestas De Proyectos/NIR - CTPF/NutriSpec/Trabajo exploratorio Flavia/1-10.txt", header=FALSE, comment.char="#")

# 21 agosto
data4 <- read.delim("C:/Users/jmgon/OneDrive - Instituto Forestal/INFOR/3. Propuestas De Proyectos/NIR - CTPF/NutriSpec/Trabajo exploratorio Flavia/a10-a54.txt", header=FALSE, comment.char="#")

# 26 agosto
data5 <- read.delim("C:/Users/jmgon/OneDrive - Instituto Forestal/INFOR/3. Propuestas De Proyectos/NIR - CTPF/NutriSpec/Trabajo exploratorio Flavia/Signatures-3123-20250825-145939.txt", header=FALSE, comment.char="#")

# 26 agosto
data6 <- read.delim("C:/Users/jmgon/OneDrive - Instituto Forestal/INFOR/3. Propuestas De Proyectos/NIR - CTPF/NutriSpec/Trabajo exploratorio Flavia/Signatures-3123-20250826-111132.txt", header=FALSE, comment.char="#")

# 27 agosto
data7 <- read.delim("C:/Users/jmgon/OneDrive - Instituto Forestal/INFOR/3. Propuestas De Proyectos/NIR - CTPF/NutriSpec/Trabajo exploratorio Flavia/Signatures-3123-20250827-150441.txt", header=FALSE, comment.char="#")

# 28 agosto
data8 <- read.delim("C:/Users/jmgon/OneDrive - Instituto Forestal/INFOR/3. Propuestas De Proyectos/NIR - CTPF/NutriSpec/Trabajo exploratorio Flavia/Signatures-3123-20250828-155056.txt", header=FALSE, comment.char="#")

#02 septiembre
data9 <- read.delim("C:/Users/jmgon/OneDrive - Instituto Forestal/INFOR/3. Propuestas De Proyectos/NIR - CTPF/NutriSpec/Trabajo exploratorio Flavia/Signatures-3123-20250902-162037.txt", header=FALSE, comment.char="#")

#03 septiembre
data10 <- read.delim("C:/Users/jmgon/OneDrive - Instituto Forestal/INFOR/3. Propuestas De Proyectos/NIR - CTPF/NutriSpec/Trabajo exploratorio Flavia/Signatures-3123-20250903-120930.txt", header=FALSE, comment.char="#")

#08 septiembre
data11 <- read.delim("C:/Users/jmgon/OneDrive - Instituto Forestal/INFOR/3. Propuestas De Proyectos/NIR - CTPF/NutriSpec/Trabajo exploratorio Flavia/Signatures-3123-20250908-155156.txt", header=FALSE, comment.char="#")

# Quitar la primera fila a cada data frame
data1 <- data1[-1, ]
data2 <- data2[-1, ]
data3 <- data3[-1, ]
data4 <- data4[-1, ]
data5 <- data5[-1, ]
data6 <- data6[-1, ]
data7 <- data7[-c(1:2), ]
data8 <- data8[-1, ]
data9 <- data9[-1, ]
data10 <- data10[-1, ]
data11 <- data11[-1, ]

# Revisa resultados
#data1 
#data2 
#data3 
#data4 
#data5 
#data6 
#data7 
#data8 
#data9 
#data10 
#data11 

1.2.1. Homogenizar las variables categoricas

1.2.2. Generar funciones de limpieza

library(dplyr)
library(dplyr)

# Función de limpieza
limpiar_datos <- function(df) {
  df %>%
    select(-c(1:9, 11:16, 117:123)) %>%
    rename(sample = V10)
}

# Función para forzar numéricos
forzar_numericas <- function(df) {
  df[, 2:101] <- lapply(df[, 2:101], function(x) as.numeric(as.character(x)))
  df
}

aplicar_limpieza <- function(df) {
  df %>%
    limpiar_datos() %>%
    forzar_numericas()
}

1.2.3. Aplicar funciones de limpieza

1.2.4. Revisar resultados

1.2.5. Verificamos si hay data set negativos

## ⚠️ Bases de datos que contienen valores negativos en las columnas 2:101:
## [1] "data4x"

1.2.6. Conteo de muestras por base por ID

## Warning: package 'purrr' was built under R version 4.3.3
## 
## Attaching package: 'purrr'
## The following object is masked from 'package:maps':
## 
##     map
## --- Conteo de Muestras (sample) por Base de Datos ---
##        Base  sample  n
## 1    data1x       1 15
## 2    data1x      10 20
## 3    data1x      11 15
## 4    data1x      12 15
## 5    data1x      13 15
## 6    data1x      14 20
## 7    data1x      15 15
## 8    data1x      16 15
## 9    data1x      17 25
## 10   data1x      18 15
## 11   data1x      19 15
## 12   data1x       2 15
## 13   data1x      20 30
## 14   data1x      21 15
## 15   data1x      22 15
## 16   data1x      23 20
## 17   data1x      24 20
## 18   data1x      25 15
## 19   data1x      26 15
## 20   data1x      27 15
## 21   data1x      28 15
## 22   data1x      29 20
## 23   data1x       3 20
## 24   data1x      30 20
## 25   data1x      31 20
## 26   data1x      32 15
## 27   data1x      33 15
## 28   data1x      34 20
## 29   data1x      35 15
## 30   data1x      36 15
## 31   data1x      37 15
## 32   data1x      38 15
## 33   data1x      39 30
## 34   data1x       4 20
## 35   data1x      40 15
## 36   data1x      41 15
## 37   data1x      42 15
## 38   data1x      43 15
## 39   data1x      44 15
## 40   data1x      45 20
## 41   data1x      46 15
## 42   data1x      47 15
## 43   data1x      48 20
## 44   data1x      49 15
## 45   data1x       5 20
## 46   data1x      50 15
## 47   data1x      51 15
## 48   data1x      52 15
## 49   data1x      53 20
## 50   data1x      54 15
## 51   data1x      55 20
## 52   data1x      56 15
## 53   data1x      57 15
## 54   data1x      58 15
## 55   data1x      59 15
## 56   data1x       6 20
## 57   data1x       7 15
## 58   data1x       8 15
## 59   data1x       9 15
## 60   data2x       1 15
## 61   data2x     100 15
## 62   data2x     101 15
## 63   data2x     102 15
## 64   data2x     103 15
## 65   data2x     104 15
## 66   data2x     105 15
## 67   data2x     106 15
## 68   data2x     107 15
## 69   data2x     108 15
## 70   data2x     109 15
## 71   data2x     110 15
## 72   data2x      60 15
## 73   data2x      61 15
## 74   data2x      62 15
## 75   data2x      63 20
## 76   data2x      64 15
## 77   data2x      65 15
## 78   data2x      66 20
## 79   data2x      67 20
## 80   data2x      68 20
## 81   data2x      69 15
## 82   data2x      70 15
## 83   data2x      71 25
## 84   data2x      72 15
## 85   data2x      73 15
## 86   data2x      74 15
## 87   data2x      75 20
## 88   data2x      76 15
## 89   data2x      77 15
## 90   data2x      78 15
## 91   data2x      79 15
## 92   data2x      80 15
## 93   data2x      81 15
## 94   data2x      82 15
## 95   data2x      83 15
## 96   data2x      84 15
## 97   data2x      85 15
## 98   data2x      86 15
## 99   data2x      87 20
## 100  data2x      88 15
## 101  data2x      89 15
## 102  data2x      90 15
## 103  data2x      91 15
## 104  data2x      92 20
## 105  data2x      93 15
## 106  data2x      94 15
## 107  data2x      95 15
## 108  data2x      96 15
## 109  data2x      97 15
## 110  data2x      98 15
## 111  data2x      99 20
## 112  data3x       1 15
## 113  data3x      10 15
## 114  data3x       2 15
## 115  data3x       3 15
## 116  data3x       4 15
## 117  data3x       5 15
## 118  data3x       6 15
## 119  data3x       7 15
## 120  data3x       8 15
## 121  data3x       9 15
## 122  data5x     b10 15
## 123  data5x     b11 15
## 124  data5x     b12 15
## 125  data5x     b13 15
## 126  data5x     b14 15
## 127  data5x     b15 15
## 128  data5x     b16 15
## 129  data5x     b17 15
## 130  data5x     b18 15
## 131  data5x     b19 15
## 132  data5x     b20 15
## 133  data5x     b21 15
## 134  data5x     b22 10
## 135  data5x     b23 15
## 136  data5x     b24 15
## 137  data5x     b25 15
## 138  data5x      b8 10
## 139  data5x      b9 15
## 140  data6x     b26 15
## 141  data6x     b27 15
## 142  data6x     b28 15
## 143  data6x     b29 15
## 144  data6x     b30 15
## 145  data6x     b31 15
## 146  data6x     b32 15
## 147  data6x     b33 15
## 148  data6x     b34 15
## 149  data6x     b35 15
## 150  data6x     b36 15
## 151  data6x     b37 15
## 152  data6x     b38 15
## 153  data6x     b39 15
## 154  data6x     b40 15
## 155  data6x     b41 15
## 156  data6x     b42 15
## 157  data6x     b43 15
## 158  data6x     b44 15
## 159  data6x     b45 15
## 160  data6x     b46 15
## 161  data6x     b47 15
## 162  data6x     b48 15
## 163  data7x  19-001  5
## 164  data7x  19-002  5
## 165  data7x  19-003  5
## 166  data7x  20-001  5
## 167  data7x  20-002  5
## 168  data7x  20-003  5
## 169  data7x  21-001  5
## 170  data7x  21-002  5
## 171  data7x  21-003  5
## 172  data7x  22-001  5
## 173  data7x  22-002  5
## 174  data7x  22-003  5
## 175  data7x  23-001  5
## 176  data7x  23-002  5
## 177  data7x  23-003  5
## 178  data7x  24-001  5
## 179  data7x  24-002  5
## 180  data7x  24-003  5
## 181  data7x  25-001  5
## 182  data7x  25-002  5
## 183  data7x  25-003  5
## 184  data7x  26-001  5
## 185  data7x  26-002  5
## 186  data7x  26-003  5
## 187  data7x  27-001  5
## 188  data7x  27-002  5
## 189  data7x  27-003  5
## 190  data7x  28-001  5
## 191  data7x  28-002  5
## 192  data7x  28-003  5
## 193  data7x  29-001  5
## 194  data7x  29-002  5
## 195  data7x  29-003  5
## 196  data7x  30-001  5
## 197  data7x  30-002  5
## 198  data7x  30-003  5
## 199  data7x  31-001  5
## 200  data7x  31-002  5
## 201  data7x  31-003  5
## 202  data7x  32-001  5
## 203  data7x  32-002  5
## 204  data7x  32-003  5
## 205  data7x  33-001  5
## 206  data7x  33-002  5
## 207  data7x  33-003  5
## 208  data7x  34-001  5
## 209  data7x  34-002  5
## 210  data7x  34-003  5
## 211  data7x  35-001  5
## 212  data7x  35-002  5
## 213  data7x  35-003  5
## 214  data7x  36-001  5
## 215  data7x  36-002  5
## 216  data7x  36-003  5
## 217  data7x  37-001  5
## 218  data7x  37-002  5
## 219  data7x  37-003  5
## 220  data7x  38-001  5
## 221  data7x  38-002  5
## 222  data7x  38-003  5
## 223  data7x  39-001  5
## 224  data7x  39-002  5
## 225  data7x  39-003  5
## 226  data7x  40-001  5
## 227  data7x  40-002  5
## 228  data7x  40-003  5
## 229  data7x  41-001  5
## 230  data7x  41-002  5
## 231  data7x  41-003  5
## 232  data7x  42-001  5
## 233  data7x  42-002  5
## 234  data7x  42-003  5
## 235  data7x  43-001  5
## 236  data7x  43-002  5
## 237  data7x  43-003  5
## 238  data7x  44-001  5
## 239  data7x  44-002  5
## 240  data7x  44-003  5
## 241  data7x  45-001  5
## 242  data7x  45-002  5
## 243  data7x  45-003  5
## 244  data7x  46-001  5
## 245  data7x  46-002  5
## 246  data7x  46-003  5
## 247  data7x  47-001  5
## 248  data7x  47-002  5
## 249  data7x  47-003  5
## 250  data7x  48-001  5
## 251  data7x  48-002  5
## 252  data7x  48-003  5
## 253  data7x  49-001  5
## 254  data7x  49-002  5
## 255  data7x  49-003  5
## 256  data7x  50-001  5
## 257  data7x  50-002  5
## 258  data7x  50-003  5
## 259  data7x  51-001  5
## 260  data7x  51-002  5
## 261  data7x  51-003  5
## 262  data7x  52-001  5
## 263  data7x  52-002  5
## 264  data7x  52-003  5
## 265  data7x  53-001  5
## 266  data7x  53-002  5
## 267  data7x  53-003  5
## 268  data7x  54-001  5
## 269  data7x  54-002  5
## 270  data7x  54-003  5
## 271  data7x  55-001  5
## 272  data7x  55-002  5
## 273  data7x  55-003  5
## 274  data7x  56-001  5
## 275  data7x  56-002  5
## 276  data7x  56-003  5
## 277  data7x  57-001  5
## 278  data7x  57-002  5
## 279  data7x  57-003  5
## 280  data7x  58-001  5
## 281  data7x  58-002  5
## 282  data7x  58-003  5
## 283  data7x  59-001  5
## 284  data7x  59-002  5
## 285  data7x  59-003  5
## 286  data8x 111-001  5
## 287  data8x 111-002  5
## 288  data8x 111-003  5
## 289  data8x 112-001  5
## 290  data8x 112-002  5
## 291  data8x 112-003  5
## 292  data8x 113-001  5
## 293  data8x 113-002  5
## 294  data8x 113-003  5
## 295  data8x 114-001  5
## 296  data8x 114-002  5
## 297  data8x 114-003  5
## 298  data8x 115-001  5
## 299  data8x 115-002  5
## 300  data8x 115-003  5
## 301  data8x 116-001  5
## 302  data8x 116-002  5
## 303  data8x 116-003  5
## 304  data8x 117-001  5
## 305  data8x 117-002  5
## 306  data8x 117-003  5
## 307  data8x 118-001  5
## 308  data8x 118-002  5
## 309  data8x 118-003  5
## 310  data8x 119-001  5
## 311  data8x 119-002  5
## 312  data8x 119-003  5
## 313  data8x 120-001  5
## 314  data8x 120-002  5
## 315  data8x 120-003  5
## 316  data8x 121-001  5
## 317  data8x 121-002  5
## 318  data8x 121-003  5
## 319  data8x 122-001  5
## 320  data8x 122-002  5
## 321  data8x 122-003  5
## 322  data8x 123-001  5
## 323  data8x 123-002  5
## 324  data8x 123-003  5
## 325  data8x 124-001  5
## 326  data8x 124-002  5
## 327  data8x 124-003  5
## 328  data8x 125-001  5
## 329  data8x 125-002  5
## 330  data8x 125-003  5
## 331  data8x 126-001  5
## 332  data8x 126-002  5
## 333  data8x 126-003  5
## 334  data8x 127-001  5
## 335  data8x 127-002  5
## 336  data8x 127-003  5
## 337  data8x 128-001  5
## 338  data8x 128-002  5
## 339  data8x 128-003  5
## 340  data8x 129-001  5
## 341  data8x 129-002  5
## 342  data8x 129-003  5
## 343  data8x 130-001  5
## 344  data8x 130-002  5
## 345  data8x 130-003  5
## 346  data8x 131-001  5
## 347  data8x 131-002  5
## 348  data8x 131-003  5
## 349  data8x 132-001  5
## 350  data8x 132-002  5
## 351  data8x 132-003  5
## 352  data8x 133-001  5
## 353  data8x 133-002  5
## 354  data8x 133-003  5
## 355  data8x 134-001  5
## 356  data8x 134-002  5
## 357  data8x 134-003  5
## 358  data8x 135-001  5
## 359  data8x 135-002  5
## 360  data8x 135-003  5
## 361  data8x 136-001  5
## 362  data8x 136-002  5
## 363  data8x 136-003  5
## 364  data8x 137-001  5
## 365  data8x 137-002  5
## 366  data8x 137-003  5
## 367  data8x 138-001  5
## 368  data8x 138-002  5
## 369  data8x 138-003  5
## 370  data8x 139-001  5
## 371  data8x 139-002  5
## 372  data8x 139-003  5
## 373  data8x 140-001  5
## 374  data8x 140-002  5
## 375  data8x 140-003  5
## 376  data8x 141-001  5
## 377  data8x 141-002  5
## 378  data8x 141-003  5
## 379  data8x 142-001  5
## 380  data8x 142-002  5
## 381  data8x 142-003  5
## 382  data8x 143-001  5
## 383  data8x 143-002  5
## 384  data8x 143-003  5
## 385  data8x 144-001  5
## 386  data8x 144-002  5
## 387  data8x 144-003  5
## 388  data8x 145-001  5
## 389  data8x 145-002  5
## 390  data8x 145-003  5
## 391  data8x 146-001  5
## 392  data8x 146-002  5
## 393  data8x 146-003  5
## 394  data8x 147-001  5
## 395  data8x 147-002  5
## 396  data8x 147-003  5
## 397  data8x 148-001  5
## 398  data8x 148-002  5
## 399  data8x 148-003  5
## 400  data8x 149-001  5
## 401  data8x 149-002  5
## 402  data8x 149-003  5
## 403  data8x 150-001  5
## 404  data8x 150-002  5
## 405  data8x 150-003  5
## 406  data8x 151-001  5
## 407  data8x 151-002  5
## 408  data8x 151-003  5
## 409  data8x 152-001  5
## 410  data8x 152-002  5
## 411  data8x 152-003  5
## 412  data8x 153-001  5
## 413  data8x 153-002  5
## 414  data8x 153-003  5
## 415  data8x 154-001  5
## 416  data8x 154-002  5
## 417  data8x 154-003  5
## 418  data8x 155-001  5
## 419  data8x 155-002  5
## 420  data8x 155-003  5
## 421  data8x 156-001  5
## 422  data8x 156-002  5
## 423  data8x 156-003  5
## 424  data8x 157-001  5
## 425  data8x 157-002  5
## 426  data8x 157-003  5
## 427  data8x 158-001  5
## 428  data8x 158-002  5
## 429  data8x 158-003  5
## 430  data8x 159-001  5
## 431  data8x 159-002  5
## 432  data8x 159-003  5
## 433  data8x 160-001  5
## 434  data8x 160-002  5
## 435  data8x 160-003  5
## 436  data8x 161-001  5
## 437  data8x 161-002  5
## 438  data8x 161-003  5
## 439  data8x 162-001  5
## 440  data8x 162-002  5
## 441  data8x 162-003  5
## 442  data8x 163-001  5
## 443  data8x 163-002  5
## 444  data8x 163-003  5
## 445  data8x 164-001  5
## 446  data8x 164-002  5
## 447  data8x 164-003  5
## 448  data8x 165-001  5
## 449  data8x 165-002  5
## 450  data8x 165-003  5
## 451  data8x 166-001  5
## 452  data8x 166-002  5
## 453  data8x 166-003  5
## 454  data8x 167-001  5
## 455  data8x 167-002  5
## 456  data8x 167-003  5
## 457  data8x 168-001  5
## 458  data8x 168-002  5
## 459  data8x 168-003  5
## 460  data8x 169-001  5
## 461  data8x 169-002  5
## 462  data8x 169-003  5
## 463  data8x 170-001  5
## 464  data8x 170-002  5
## 465  data8x 170-003  5
## 466  data8x 171-001  5
## 467  data8x 171-002  5
## 468  data8x 171-003  5
## 469  data8x 172-001  5
## 470  data8x 172-002  5
## 471  data8x 172-003  5
## 472  data8x 173-001  5
## 473  data8x 173-002  5
## 474  data8x 173-003  5
## 475  data8x 174-001  5
## 476  data8x 174-002  5
## 477  data8x 174-003  5
## 478  data9x 175-001  5
## 479  data9x 175-002  5
## 480  data9x 175-003  5
## 481  data9x 176-001  5
## 482  data9x 176-002  5
## 483  data9x 176-003  5
## 484  data9x 177-001  5
## 485  data9x 177-002  5
## 486  data9x 177-003  5
## 487  data9x 178-001  5
## 488  data9x 178-002  5
## 489  data9x 178-003  5
## 490  data9x 179-001  5
## 491  data9x 179-002  5
## 492  data9x 179-003  5
## 493  data9x 180-001  5
## 494  data9x 180-002  5
## 495  data9x 180-003  5
## 496  data9x 181-001  5
## 497  data9x 181-002  5
## 498  data9x 181-003  5
## 499  data9x 182-001  5
## 500  data9x 182-002  5
## 501  data9x 182-003  5
## 502  data9x 183-001  5
## 503  data9x 183-002  5
## 504  data9x 183-003  5
## 505  data9x 184-001  5
## 506  data9x 184-002  5
## 507  data9x 184-003  5
## 508  data9x 185-001  5
## 509  data9x 185-002  5
## 510  data9x 185-003  5
## 511  data9x 186-001  5
## 512  data9x 186-002  5
## 513  data9x 186-003  5
## 514  data9x 187-001  5
## 515  data9x 187-002  5
## 516  data9x 187-003  5
## 517  data9x 188-001  5
## 518  data9x 188-002  5
## 519  data9x 188-003  5
## 520  data9x 189-001  5
## 521  data9x 189-002  5
## 522  data9x 189-003  5
## 523  data9x 190-001  5
## 524  data9x 190-002  5
## 525  data9x 190-003  5
## 526  data9x 191-001  5
## 527  data9x 191-002  5
## 528  data9x 191-003  5
## 529  data9x 192-001  5
## 530  data9x 192-002  5
## 531  data9x 192-003  5
## 532  data9x 193-001  5
## 533  data9x 193-002  5
## 534  data9x 193-003  5
## 535  data9x 194-001  5
## 536  data9x 194-002  5
## 537  data9x 194-003  5
## 538  data9x 195-001  5
## 539  data9x 195-002  5
## 540  data9x 195-003  5
## 541  data9x 196-001  5
## 542  data9x 196-002  5
## 543  data9x 196-003  5
## 544  data9x 197-001  5
## 545  data9x 197-002  5
## 546  data9x 197-003  5
## 547  data9x 198-001  5
## 548  data9x 198-002  5
## 549  data9x 198-003  5
## 550  data9x 199-001  5
## 551  data9x 199-002  5
## 552  data9x 199-003  5
## 553  data9x 200-001  5
## 554  data9x 200-002  5
## 555  data9x 200-003  5
## 556  data9x 201-001  5
## 557  data9x 201-002  5
## 558  data9x 201-003  5
## 559  data9x 202-001  5
## 560  data9x 202-002  5
## 561  data9x 202-003  5
## 562  data9x 203-001  5
## 563  data9x 203-002  5
## 564  data9x 203-003  5
## 565  data9x 204-001  5
## 566  data9x 204-002  5
## 567  data9x 204-003  5
## 568  data9x 205-001  5
## 569  data9x 205-002  5
## 570  data9x 205-003  5
## 571  data9x 206-001  5
## 572  data9x 206-002  5
## 573  data9x 206-003  5
## 574  data9x 207-001  5
## 575  data9x 207-002  5
## 576  data9x 207-003  5
## 577  data9x 208-001  5
## 578  data9x 208-002  5
## 579  data9x 208-003  5
## 580  data9x 209-001  5
## 581  data9x 209-002  5
## 582  data9x 209-003  5
## 583  data9x 210-001  5
## 584  data9x 210-002  5
## 585  data9x 210-003  5
## 586  data9x 211-001  5
## 587  data9x 211-002  5
## 588  data9x 211-003  5
## 589  data9x 212-001  5
## 590  data9x 212-002  5
## 591  data9x 212-003  5
## 592  data9x 213-001  5
## 593  data9x 213-002  5
## 594  data9x 213-003  5
## 595  data9x 214-001  5
## 596  data9x 214-002  5
## 597  data9x 214-003  5
## 598  data9x 215-001  5
## 599  data9x 215-002  5
## 600  data9x 215-003  5
## 601  data9x 216-001  5
## 602  data9x 216-002  5
## 603  data9x 216-003  5
## 604  data9x 217-001  5
## 605  data9x 217-002  5
## 606  data9x 217-003  5
## 607  data9x 218-001  5
## 608  data9x 218-002  5
## 609  data9x 218-003  5
## 610  data9x 219-001  5
## 611  data9x 219-002  5
## 612  data9x 219-003  5
## 613  data9x 220-001  5
## 614  data9x 220-002  5
## 615  data9x 220-003  5
## 616  data9x 221-001  5
## 617  data9x 221-002  5
## 618  data9x 221-003  5
## 619  data9x 222-001  5
## 620  data9x 222-002  5
## 621  data9x 222-003  5
## 622  data9x 223-001  5
## 623  data9x 223-002  5
## 624  data9x 223-003  5
## 625  data9x 224-001  5
## 626  data9x 224-002  5
## 627  data9x 224-003  5
## 628  data9x 225-001  5
## 629  data9x 225-002  5
## 630  data9x 225-003  5
## 631  data9x 226-001  5
## 632  data9x 226-002  5
## 633  data9x 226-003  5
## 634  data9x 227-001  5
## 635  data9x 227-002  5
## 636  data9x 227-003  5
## 637  data9x 228-001  5
## 638  data9x 228-002  5
## 639  data9x 228-003  5
## 640  data9x 232-001  5
## 641  data9x 232-002  5
## 642  data9x 232-003  5
## 643  data9x 233-001  5
## 644  data9x 233-002  5
## 645  data9x 233-003  5
## 646  data9x 234-001  5
## 647  data9x 234-002  5
## 648  data9x 234-003  5
## 649  data9x 235-001  5
## 650  data9x 235-002  5
## 651  data9x 235-003  5
## 652  data9x 236-001  5
## 653  data9x 236-002  5
## 654  data9x 236-003  5
## 655  data9x 237-001  5
## 656  data9x 237-002  5
## 657  data9x 237-003  5
## 658  data9x 238-001  5
## 659  data9x 238-002  5
## 660  data9x 238-003  5
## 661  data9x 239-001  5
## 662  data9x 239-002  5
## 663  data9x 239-003  5
## 664  data9x 240-001  5
## 665  data9x 240-002  5
## 666  data9x 240-003  5
## 667  data9x 241-001  5
## 668  data9x 241-002  5
## 669  data9x 241-003  5
## 670  data9x 242-001  5
## 671  data9x 242-002  5
## 672  data9x 242-003  5
## 673  data9x 243-001  5
## 674  data9x 243-002  5
## 675  data9x 243-003  5
## 676  data9x 244-001  5
## 677  data9x 244-002  5
## 678  data9x 244-003  5
## 679  data9x 245-001  5
## 680  data9x 245-002  5
## 681  data9x 245-003  5
## 682  data9x 246-001  5
## 683  data9x 246-002  5
## 684  data9x 246-003  5
## 685  data9x 247-001  5
## 686  data9x 247-002  5
## 687  data9x 247-003  5
## 688  data9x 248-001  5
## 689  data9x 248-002  5
## 690  data9x 248-003  5
## 691  data9x 249-001  5
## 692  data9x 249-002  5
## 693  data9x 249-003  5
## 694  data9x 250-001  5
## 695  data9x 250-002  5
## 696  data9x 250-003  5
## 697  data9x 251-001  5
## 698  data9x 251-002  5
## 699  data9x 251-003  5
## 700  data9x 252-001  5
## 701  data9x 252-002  5
## 702  data9x 252-003  5
## 703  data9x 253-001  5
## 704  data9x 253-002  5
## 705  data9x 253-003  5
## 706  data9x 254-001  5
## 707  data9x 254-002  5
## 708  data9x 254-003  5
## 709  data9x 255-001  5
## 710  data9x 255-002  5
## 711  data9x 255-003  5
## 712  data9x 256-001  5
## 713  data9x 256-002  5
## 714  data9x 256-003  5
## 715  data9x 257-001  5
## 716  data9x 257-002  5
## 717  data9x 257-003  5
## 718  data9x 258-001  5
## 719  data9x 258-002  5
## 720  data9x 258-003  5
## 721  data9x 259-001  5
## 722  data9x 259-002  5
## 723  data9x 259-003  5
## 724  data9x 260-001  5
## 725  data9x 260-002  5
## 726  data9x 260-003  5
## 727  data9x 261-001  5
## 728  data9x 261-002  5
## 729  data9x 261-003  5
## 730  data9x 262-001  5
## 731  data9x 262-002  5
## 732  data9x 262-003  5
## 733 data10x 263-001  5
## 734 data10x 263-002  5
## 735 data10x 263-003  5
## 736 data10x 264-001  5
## 737 data10x 264-002  5
## 738 data10x 264-003  5
## 739 data10x 265-001  5
## 740 data10x 265-002  5
## 741 data10x 265-003  5
## 742 data10x 266-001  5
## 743 data10x 266-002  5
## 744 data10x 266-003  5
## 745 data10x 267-001  5
## 746 data10x 267-002  5
## 747 data10x 267-003  5
## 748 data10x 268-001  5
## 749 data10x 268-002  5
## 750 data10x 268-003  5
## 751 data10x 269-001  5
## 752 data10x 269-002  5
## 753 data10x 269-003  5
## 754 data10x 270-001  5
## 755 data10x 270-002  5
## 756 data10x 270-003  5
## 757 data10x 271-001  5
## 758 data10x 271-002  5
## 759 data10x 271-003  5
## 760 data10x 272-001  5
## 761 data10x 272-002  5
## 762 data10x 272-003  5
## 763 data10x 273-001  5
## 764 data10x 273-002  5
## 765 data10x 273-003  5
## 766 data10x 274-001  5
## 767 data10x 274-002  5
## 768 data10x 274-003  5
## 769 data10x 275-001  5
## 770 data10x 275-002  5
## 771 data10x 275-003  5
## 772 data10x 276-001  5
## 773 data10x 276-002  5
## 774 data10x 276-003  5
## 775 data10x 277-001  5
## 776 data10x 277-002  5
## 777 data10x 277-003  5
## 778 data10x 278-001  5
## 779 data10x 278-002  5
## 780 data10x 278-003  5
## 781 data10x 279-001  5
## 782 data10x 279-002  5
## 783 data10x 279-003  5
## 784 data10x 280-001  5
## 785 data10x 280-002  5
## 786 data10x 280-003  5
## 787 data10x 281-001  5
## 788 data10x 281-002  5
## 789 data10x 281-003  5
## 790 data10x 282-001  5
## 791 data10x 282-002  5
## 792 data10x 282-003  5
## 793 data11x  10-001  5
## 794 data11x  10-002  5
## 795 data11x  10-003  5
## 796 data11x  11-001  5
## 797 data11x  11-002  5
## 798 data11x  11-003  5
## 799 data11x  12-001  5
## 800 data11x  12-002  5
## 801 data11x  12-003  5
## 802 data11x  13-001  5
## 803 data11x  13-002  5
## 804 data11x  13-003  5
## 805 data11x  14-001  5
## 806 data11x  14-002  5
## 807 data11x  14-003  5
## 808 data11x  15-001  5
## 809 data11x  15-002  5
## 810 data11x  15-003  5
## 811 data11x  16-001  5
## 812 data11x  16-002  5
## 813 data11x  16-003  5
## 814 data11x  17-001  5
## 815 data11x  17-002  5
## 816 data11x  17-003  5
## 817 data11x  18-001  5
## 818 data11x  18-002  5
## 819 data11x  18-003  5
## 820 data11x 245-001  5
## 821 data11x 245-002  5
## 822 data11x 245-003  5
## 823 data11x 246-001  5
## 824 data11x 246-002  5
## 825 data11x 246-003  5
## 826 data11x 247-001  5
## 827 data11x 247-002  5
## 828 data11x 247-003  5
## 829 data11x 248-001  5
## 830 data11x 248-002  5
## 831 data11x 248-003  5
## 832 data11x 249-001  5
## 833 data11x 249-002  5
## 834 data11x 249-003  5
## 835 data11x 250-001  5
## 836 data11x 250-002  5
## 837 data11x 250-003  5
## 838 data11x 251-001  5
## 839 data11x 251-002  5
## 840 data11x 251-003  5
## 841 data11x 252-001  5
## 842 data11x 252-002  5
## 843 data11x 252-003  5
## 844 data11x 253-001  5
## 845 data11x 253-002  5
## 846 data11x 253-003  5
## 847 data11x 254-001  5
## 848 data11x 254-002  5
## 849 data11x 254-003  5
## 850 data11x 255-001  5
## 851 data11x 255-002  5
## 852 data11x 255-003  5
## 853 data11x 256-001  5
## 854 data11x 256-002  5
## 855 data11x 256-003  5
## 856 data11x 257-001  5
## 857 data11x 257-002  5
## 858 data11x 257-003  5
## 859 data11x 258-001  5
## 860 data11x 258-002  5
## 861 data11x 258-003  5
## 862 data11x 259-001  5
## 863 data11x 259-002  5
## 864 data11x 259-003  5
## 865 data11x 260-001  5
## 866 data11x 260-002  5
## 867 data11x 260-003  5
## 868 data11x 261-001  5
## 869 data11x 261-002  5
## 870 data11x 261-003  5
## 871 data11x 262-001  5
## 872 data11x 262-002  5
## 873 data11x 262-003  5
## 874 data11x   6-001  5
## 875 data11x   6-002  5
## 876 data11x   6-003  5
## 877 data11x   7-001  5
## 878 data11x   7-002  5
## 879 data11x   7-003  5
## 880 data11x   9-001  5
## 881 data11x   9-002  5
## 882 data11x   9-003  5
## 883 data11x  m1-001  5
## 884 data11x  m1-002  5
## 885 data11x  m1-003  5
## 886 data11x  m2-001  5
## 887 data11x  m2-002  5
## 888 data11x  m2-003  5
## 889 data11x  m3-001  5
## 890 data11x  m3-002  5
## 891 data11x  m3-003  5
## 892 data11x  m4-001  5
## 893 data11x  m4-002  5
## 894 data11x  m4-003  5
## 895 data11x  m5-001  5
## 896 data11x  m5-002  5
## 897 data11x  m5-003  5
## 898 data11x  m6-001  5
## 899 data11x  m6-002  5
## 900 data11x  m6-003  5
## 901 data11x  m7-001  5
## 902 data11x  m7-002  5
## 903 data11x  m7-003  5

1.2.7. Conteo de muestras por base por ID / Nota: correciones en los ID

## Muestras únicas en data7x después de la limpieza:
##  [1] "19" "20" "21" "22" "23" "24" "25" "26" "27" "28" "29" "30" "31" "32" "33"
## [16] "34" "35" "36" "37" "38" "39" "40" "41" "42" "43" "44" "45" "46" "47" "48"
## [31] "49" "50" "51" "52" "53" "54" "55" "56" "57" "58" "59"
## Muestras únicas en data8x después de la limpieza:
##  [1] "111" "112" "113" "114" "115" "116" "117" "118" "119" "120" "121" "122"
## [13] "123" "124" "125" "126" "127" "128" "129" "130" "131" "132" "133" "134"
## [25] "135" "136" "137" "138" "139" "140" "141" "142" "143" "144" "145" "146"
## [37] "147" "148" "149" "150" "151" "152" "153" "154" "155" "156" "157" "158"
## [49] "159" "160" "161" "162" "163" "164" "165" "166" "167" "168" "169" "170"
## [61] "171" "172" "173" "174"
## Muestras únicas en data9x después de la limpieza:
##  [1] "175" "176" "177" "178" "179" "180" "181" "182" "183" "184" "185" "186"
## [13] "187" "188" "189" "190" "191" "192" "193" "194" "195" "196" "197" "198"
## [25] "199" "200" "201" "202" "203" "204" "205" "206" "207" "208" "209" "210"
## [37] "211" "212" "213" "214" "215" "216" "217" "218" "219" "220" "221" "222"
## [49] "223" "224" "225" "226" "227" "228" "232" "233" "234" "235" "236" "237"
## [61] "238" "239" "240" "241" "242" "243" "244" "245" "246" "247" "248" "249"
## [73] "250" "251" "252" "253" "254" "255" "256" "257" "258" "259" "260" "261"
## [85] "262"
## Muestras únicas en data10x después de la limpieza:
##  [1] "263" "264" "265" "266" "267" "268" "269" "270" "271" "272" "273" "274"
## [13] "275" "276" "277" "278" "279" "280" "281" "282"
## Muestras únicas en data11x después de la limpieza:
##  [1] "m1"  "m2"  "m3"  "m4"  "m5"  "m6"  "m7"  "6"   "7"   "9"   "10"  "11" 
## [13] "12"  "13"  "14"  "15"  "16"  "17"  "18"  "245" "246" "247" "248" "249"
## [25] "250" "251" "252" "253" "254" "255" "256" "257" "258" "259" "260" "261"
## [37] "262"

1.2.8. Revisar resultados

📢📢📢📢📢📢📢📢 Revisión 📢📢📢📢📢📢📢📢

cat("Muestras únicas en data1x ordenadas")
## Muestras únicas en data1x ordenadas
sort(unique(as.integer(data1x$sample)))
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
## [26] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
## [51] 51 52 53 54 55 56 57 58 59
cat("Muestras únicas en data2x ordenadas")
## Muestras únicas en data2x ordenadas
sort(unique(as.integer(data2x$sample)))
##  [1]   1  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77
## [20]  78  79  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96
## [39]  97  98  99 100 101 102 103 104 105 106 107 108 109 110
cat("Muestras únicas en data3x ordenadas")
## Muestras únicas en data3x ordenadas
sort(unique(as.integer(data3x$sample)))
##  [1]  1  2  3  4  5  6  7  8  9 10
cat("Muestras únicas en data4x ordenadas")
## Muestras únicas en data4x ordenadas
sort(unique(data4x$sample))
##  [1] "a10" "a11" "a12" "a13" "a14" "a15" "a16" "a17" "a18" "a19" "a20" "a21"
## [13] "a22" "a23" "a24" "a25" "a26" "a27" "a28" "a29" "a3"  "a30" "a31" "a32"
## [25] "a34" "a35" "a36" "a37" "a38" "a39" "a40" "a41" "a42" "a43" "a44" "a45"
## [37] "a46" "a47" "a48" "a49" "a50" "a51" "a52" "a53" "a54"
cat("Muestras únicas en data5x ordenadas")
## Muestras únicas en data5x ordenadas
sort(unique(data5x$sample))
##  [1] "b10" "b11" "b12" "b13" "b14" "b15" "b16" "b17" "b18" "b19" "b20" "b21"
## [13] "b22" "b23" "b24" "b25" "b8"  "b9"
cat("Muestras únicas en data6x ordenadas")
## Muestras únicas en data6x ordenadas
sort(unique(data6x$sample))
##  [1] "b26" "b27" "b28" "b29" "b30" "b31" "b32" "b33" "b34" "b35" "b36" "b37"
## [13] "b38" "b39" "b40" "b41" "b42" "b43" "b44" "b45" "b46" "b47" "b48"
cat("Muestras únicas en data7x ordenadas")
## Muestras únicas en data7x ordenadas
sort(unique(as.integer(data7x$sample)))
##  [1] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
## [26] 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
cat("Muestras únicas en data8x ordenadas")
## Muestras únicas en data8x ordenadas
sort(unique(as.integer(data8x$sample)))
##  [1] 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
## [20] 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
## [39] 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
## [58] 168 169 170 171 172 173 174
cat("Muestras únicas en data9x ordenadas")
## Muestras únicas en data9x ordenadas
sort(unique(as.integer(data9x$sample)))
##  [1] 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193
## [20] 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212
## [39] 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 232 233 234
## [58] 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253
## [77] 254 255 256 257 258 259 260 261 262
cat("Muestras únicas en data10x ordenadas")
## Muestras únicas en data10x ordenadas
sort(unique(as.integer(data10x$sample)))
##  [1] 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281
## [20] 282
cat("Muestras únicas en data11x ordenadas")
## Muestras únicas en data11x ordenadas
sort(unique(data11x$sample))
##  [1] "10"  "11"  "12"  "13"  "14"  "15"  "16"  "17"  "18"  "245" "246" "247"
## [13] "248" "249" "250" "251" "252" "253" "254" "255" "256" "257" "258" "259"
## [25] "260" "261" "262" "6"   "7"   "9"   "m1"  "m2"  "m3"  "m4"  "m5"  "m6" 
## [37] "m7"
## <environment: R_GlobalEnv>
## ✅ El proceso de promediado dinámico (cada 5 espectros) se ha aplicado a:
## data1x_prom, data2x_prom, data3x_prom, data5x_prom, data6x_prom, data7x_prom, data8x_prom, data9x_prom, data10x_prom, data11x_prom
## Ahora están listos para la unión final. 🚀

1.2.9. Revisar resultados

1.4 Visualizar espectros

## ## Generando 10 gráficos interactivos...
data5x_prom <- data5x_prom %>% 
  filter(sample %in% c("b25", "b24"))

1.6 Base de datos espectral

library(readxl)
otros_id <- read_excel("C:/Users/jmgon/OneDrive - Instituto Forestal/INFOR/3. Propuestas De Proyectos/NIR - CTPF/NutriSpec/Trabajo exploratorio Flavia/NOMENCLATURA.xlsx", 
    sheet = "Nothofagus", col_types = c("text", 
        "text", "text", "text", "numeric", 
        "numeric", "text"))
otros_id
library(dplyr)

# Opción A: tres bases explícitas
base_unida <- bind_rows(
  list(base1 = data1x_prom, base2 = data2x_prom, base3 = data3x_prom, base5 = data5x_prom),
  .id = "base"
)
       
       
#base5 = data5x_prom,
#base6 = data6x_prom,
#base7 = data7x_prom,
#base8 = data8x_prom,
#base9 = data8x_prom,
#base10 = data10x_prom,
#base11 = data11x_prom

# (Opcional) Si tienes muchas bases con nombres tipo data5x_prom, data6x_prom, ...
# bases <- mget(ls(pattern = "^data\\d+x_prom$"))
# base_unida <- bind_rows(bases, .id = "base")
base_final_con_metadatos <- base_unida %>%
  inner_join(otros_id, by = "sample")

base_final_con_metadatos

Bloque de revisión

library(stringr)
# Filtra el sample de interés (ej. "1")
df_x <- filter(base_final_con_metadatos, sample == "1")
# Columnas espectrales
spectral_cols <- grep("^V\\d+$", names(df_x), value = TRUE)
# LARGO + réplica por base (por si quieres ver todas las curvas de cada base)
df_long <- df_x %>%
  group_by(base) %>%
  mutate(replica = row_number()) %>%
  ungroup() %>%
  select(base, replica, all_of(spectral_cols)) %>%
  pivot_longer(-c(base, replica), names_to = "band", values_to = "value") %>%
  mutate(idx = as.integer(str_remove(band, "^V")))
# eje X
df_long <- if (exists("wavelength")) {
  mutate(df_long, wl = wavelength[idx])
} else {
  mutate(df_long, wl = idx)
}
ggplot(df_long, aes(x = wl, y = value,
                    group = interaction(base, replica),
                    color = base)) +
  geom_line(alpha = 0.6) +
  labs(x = "Longitud de onda", y = "Intensidad/Reflectancia", color = "Base") +
  theme_minimal()

# Exportar un data frame a CSV
write.csv(
  base_final_con_metadatos, 
  file = "base_final_con_metadatos.csv",
  row.names = FALSE,
  fileEncoding = "UTF-8"
)