Tipos de datos
Fechas
as.Date("2024-07-23")
## [1] "2024-07-23"
Sys.Date()
## [1] "2024-07-23"
Fechas y Hora
as.POSIXct("2024-07-23 18:43:00")
## [1] "2024-07-23 18:43:00 -05"
Sys.time()
## [1] "2024-07-23 21:19:14 -05"
Vector
nombres <- c("nazly", "Astrid", "Rodolfo", "Nataly")
table(nombres)
## nombres
## Astrid Nataly nazly Rodolfo
## 1 1 1 1
codes <- c(Italy=380, canada=124, egypto=818)
codes
## Italy canada egypto
## 380 124 818
names(codes) # nombre de columnas
## [1] "Italy" "canada" "egypto"
codes[1]
## Italy
## 380
codes[1:2]
## Italy canada
## 380 124
codes[c(1,3)]
## Italy egypto
## 380 818
codes["canada"]
## canada
## 124
class(codes)
## [1] "numeric"
funciones para crear vectores
secuencia <- seq(1:10) # Genera una secuencia de numero del 1 al 10
# help("seq") # muestra ayuda sobre una funcion
secuencia2 <- seq(1, 10, by = 2) # secuencia del 1 al 10 de dos en dos
secuencia3 <- seq(1, 100,length.out = 5) # secuencia del 1 al 100 muestra 5 elementos
a <- c(1,"a", 3.14 )
matrices
mat <- matrix(1:9,nrow = 3)
mat
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
mat2 <- matrix(1:9,nrow = 3, byrow = FALSE) # byrow orden de llenado de la matrix
mat2
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
mat3 <- matrix(1:9,nrow = 3, ncol = 4 , byrow = FALSE) # byrow orden de llenado de la matrix
## Warning in matrix(1:9, nrow = 3, ncol = 4, byrow = FALSE): data length [9] is
## not a sub-multiple or multiple of the number of columns [4]
mat3
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 1
## [2,] 2 5 8 2
## [3,] 3 6 9 3
rownames(mat3) <- c("F1","F2","F3")
colnames(mat3) <- c("C1","C2","C3","C4")
mat3
## C1 C2 C3 C4
## F1 1 4 7 1
## F2 2 5 8 2
## F3 3 6 9 3
mat3[1:2,]
## C1 C2 C3 C4
## F1 1 4 7 1
## F2 2 5 8 2
Listas
lista <- list(numero=1, texto="Hola", logico=TRUE, decimal=pi)
lista
## $numero
## [1] 1
##
## $texto
## [1] "Hola"
##
## $logico
## [1] TRUE
##
## $decimal
## [1] 3.141593
cal <- list(nombre="Astrid", idestudiante=1234, grades = c(5, 4.8), final="A")
cal
## $nombre
## [1] "Astrid"
##
## $idestudiante
## [1] 1234
##
## $grades
## [1] 5.0 4.8
##
## $final
## [1] "A"
cal$idestudiante
## [1] 1234
cal[["idestudiante"]]
## [1] 1234
cal[[2]]
## [1] 1234
dataframe
df <- as.data.frame(mat3) # convierte una matrix en un dataframe
df
## C1 C2 C3 C4
## F1 1 4 7 1
## F2 2 5 8 2
## F3 3 6 9 3
df2 <- data.frame(nombre = c("rodolfo","Andres", "Maria Daniela"), edades = c(23,24,25))
df2
## nombre edades
## 1 rodolfo 23
## 2 Andres 24
## 3 Maria Daniela 25
city <- c("bogota", "cali", "medellin")
tmp <- c(14,34,28)
df3 <- data.frame(city, tmp)
df3
## city tmp
## 1 bogota 14
## 2 cali 34
## 3 medellin 28
Actividad celsius a farenhai
c_a_f <- function(c) {
f <- (c * 9/5) + 32
return(f)
}
df3$tmp
## [1] 14 34 28
tmp_f <- c_a_f(df3$tmp)
df3$tmp_f <- tmp_f
df3
## city tmp tmp_f
## 1 bogota 14 57.2
## 2 cali 34 93.2
## 3 medellin 28 82.4
df3[df3$tmp<30,]
## city tmp tmp_f
## 1 bogota 14 57.2
## 3 medellin 28 82.4
df3[df3$tmp_f < 60,]
## city tmp tmp_f
## 1 bogota 14 57.2
Listas
data("BJsales")
View(BJsales)
data("HairEyeColor")
View(HairEyeColor)
data(na_example)
## Warning in data(na_example): data set 'na_example' not found
set.seed(123)
# Crear un vector del 1 al 1000
mi_vector <- 1:1000
# Definir el porcentaje de valores NA
porcentaje_na <- 0.1
# Calcular el número de valores NA
num_na <- floor(length(mi_vector) * porcentaje_na)
# Seleccionar aleatoriamente índices para reemplazar por NA
set.seed(123) # Para reproducibilidad
indices_na <- sample(length(mi_vector), num_na)
# Reemplazar los valores seleccionados por NA
mi_vector[indices_na] <- NA
# Mostrar el vector
mi_vector
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 NA NA
## [15] 15 16 17 18 19 20 21 22 NA 24 25 NA 27 28
## [29] 29 30 31 32 33 NA 35 36 37 38 NA 40 NA 42
## [43] 43 44 45 46 47 48 49 50 51 52 53 54 55 56
## [57] 57 58 59 60 61 62 63 64 65 66 67 68 NA 70
## [71] 71 NA 73 74 75 76 77 78 79 80 81 82 83 84
## [85] 85 86 87 88 NA NA NA 92 93 94 95 96 97 98
## [99] 99 100 101 102 103 104 105 106 107 108 109 110 111 112
## [113] 113 114 115 NA 117 NA 119 120 121 122 123 124 125 126
## [127] 127 128 129 130 131 132 133 134 NA 136 137 138 139 140
## [141] NA 142 NA 144 145 146 147 148 149 150 151 152 NA 154
## [155] 155 156 157 158 NA 160 161 162 163 164 165 NA 167 168
## [169] 169 170 171 172 173 174 175 176 177 178 NA 180 181 182
## [183] 183 184 185 186 187 188 189 190 191 192 193 194 NA 196
## [197] 197 198 199 200 201 202 203 204 205 206 207 208 NA 210
## [211] NA 212 213 214 215 216 NA 218 219 220 221 222 NA NA
## [225] 225 226 227 228 NA 230 231 232 233 234 235 236 237 238
## [239] 239 240 241 242 243 NA 245 246 247 248 249 250 251 252
## [253] 253 254 255 256 257 258 259 260 261 262 263 264 265 266
## [267] 267 268 269 270 271 272 273 274 275 276 NA NA 279 280
## [281] 281 282 283 284 285 286 287 288 289 NA NA 292 293 NA
## [295] 295 296 297 298 NA 300 301 302 303 304 305 306 307 NA
## [309] NA 310 311 312 313 314 315 NA 317 318 319 320 321 322
## [323] 323 324 325 326 327 328 329 330 331 332 333 334 335 336
## [337] 337 338 339 340 341 342 343 344 345 346 347 NA 349 350
## [351] 351 352 353 354 NA 356 357 358 359 360 361 362 363 364
## [365] 365 366 367 368 369 370 371 372 NA NA 375 376 377 378
## [379] 379 380 381 382 383 384 385 386 387 388 389 390 391 392
## [393] 393 394 395 396 397 398 399 400 401 402 403 404 405 406
## [407] 407 408 NA 410 411 412 413 414 NA 416 417 418 419 420
## [421] 421 422 423 NA 425 NA 427 428 429 430 NA 432 433 434
## [435] 435 436 437 438 439 440 441 442 443 444 445 446 447 448
## [449] 449 450 451 452 453 454 455 NA 457 458 459 460 461 462
## [463] NA 464 465 466 467 468 469 470 471 472 473 474 475 476
## [477] 477 478 479 480 481 482 483 484 485 486 487 488 489 NA
## [491] 491 492 493 494 495 496 497 498 499 500 501 502 503 504
## [505] 505 506 507 508 509 510 511 512 513 514 515 NA 517 518
## [519] NA 520 521 522 523 524 525 NA 527 NA 529 530 531 532
## [533] 533 534 535 536 NA 538 539 540 541 542 543 NA 545 546
## [547] 547 548 549 550 551 552 553 554 NA 556 557 558 559 560
## [561] 561 562 563 564 565 566 567 568 569 570 571 572 573 574
## [575] NA 576 577 578 579 580 NA 582 583 584 585 586 587 NA
## [589] 589 NA 591 592 NA 594 595 596 597 NA 599 600 601 NA
## [603] NA 604 605 NA 607 608 609 610 611 612 613 614 615 616
## [617] 617 618 619 620 NA 622 623 624 625 626 627 628 629 630
## [631] 631 632 633 634 635 636 637 638 639 640 641 642 643 644
## [645] 645 646 647 648 NA 650 651 652 653 654 655 656 657 658
## [659] 659 660 661 662 663 664 NA 666 667 668 669 670 671 672
## [673] 673 674 675 676 677 678 679 680 681 682 683 684 685 686
## [687] 687 688 689 690 691 692 693 694 695 696 697 698 699 700
## [701] 701 702 703 704 705 706 707 708 NA 710 711 712 713 714
## [715] 715 716 717 718 719 720 721 NA 723 724 725 726 727 728
## [729] 729 730 731 732 733 734 735 736 737 738 739 740 741 742
## [743] 743 744 745 746 NA 748 749 750 751 NA 753 754 NA 756
## [757] 757 758 759 760 761 762 763 764 765 NA 767 NA 769 770
## [771] 771 772 773 NA NA 776 777 778 779 780 781 782 783 784
## [785] 785 786 787 788 789 790 791 792 793 794 795 796 797 798
## [799] 799 800 801 802 803 804 805 806 807 808 809 810 811 812
## [813] 813 814 815 816 817 NA 819 820 NA 822 823 824 825 826
## [827] 827 828 829 830 831 832 833 834 835 836 837 838 839 NA
## [841] 841 NA 843 NA 845 846 847 848 849 850 851 852 853 NA
## [855] 855 856 857 858 NA 860 861 862 863 864 NA 866 867 868
## [869] 869 870 NA 872 873 874 875 876 877 878 879 NA 881 882
## [883] 883 884 885 886 887 888 889 890 891 892 893 894 NA 896
## [897] 897 898 899 900 901 902 903 904 NA 906 907 908 909 910
## [911] 911 912 913 914 915 916 917 918 919 920 921 922 NA 924
## [925] 925 926 927 928 929 930 931 NA 933 934 935 936 NA NA
## [939] 939 940 941 942 943 944 945 946 947 948 949 950 951 952
## [953] NA NA 955 956 957 958 959 960 961 962 963 964 965 966
## [967] 967 968 969 970 971 972 973 974 975 976 977 978 NA 980
## [981] 981 982 983 984 985 986 987 NA 989 990 991 992 993 NA
## [995] 995 996 997 998 NA 1000
mean(mi_vector)
## [1] NA
idna <- is.na(mi_vector)
idna
## [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [13] TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
## [25] FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
## [37] FALSE FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [49] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [61] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
## [73] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [85] FALSE FALSE FALSE FALSE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE
## [97] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [109] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE
## [121] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [133] FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE
## [145] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
## [157] FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
## [169] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
## [181] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [193] FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [205] FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
## [217] TRUE FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE FALSE
## [229] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [241] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [253] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [265] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [277] TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [289] FALSE TRUE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE
## [301] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE
## [313] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [325] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [337] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE
## [349] FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
## [361] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [373] TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [385] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [397] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [409] TRUE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
## [421] FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE
## [433] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [445] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE
## [457] FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
## [469] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [481] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
## [493] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [505] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE
## [517] FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE
## [529] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
## [541] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [553] FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [565] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
## [577] FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE
## [589] FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
## [601] FALSE TRUE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [613] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
## [625] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [637] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [649] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [661] FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [673] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [685] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [697] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [709] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [721] FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [733] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [745] FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE
## [757] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE
## [769] FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE FALSE FALSE
## [781] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [793] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [805] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [817] FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [829] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE
## [841] FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [853] FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
## [865] TRUE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
## [877] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [889] FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
## [901] FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [913] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
## [925] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
## [937] TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [949] FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [961] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [973] FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
## [985] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
## [997] FALSE FALSE TRUE FALSE
sum(idna)
## [1] 100
mean(mi_vector[!idna])
## [1] 501.7289
v1 <- c(1,2,3,4,5)
v2 <- c(T,F,T,F,T)
v1[!v2]
## [1] 2 4
s2 <- summary(mi_vector[!idna])
s2
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.0 254.8 500.5 501.7 746.5 1000.0
Listas
# install.packages("dslabs")
# library(dslabs)
# data("murders")
# View(murders)
#murders
# head(murders,3)
# class(murders)
# str(murders)
# names(murders)
# sort(murders$total) # ordena los datos de la variable seleccionada
# murders$population
#order(murders$total) # devuelve las posiciones
#murders$state[5]
# help("attach")
# attach(murders) # separa el dataframe en vectores
#max(total)
#pos_max <- which.max(total) # posicion del valor maximo
#pos_max
#min(total)
#pos_min <- which.min(total) # posicuon del valor minimo
#state(pos_max)
#state(pos_min)