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)