kaggle--->R¶

R está enfoncado en:¶

  • Estadística.
  • Cálculo numérico: vector
In [1]:
"Hola mundo desde R"
'Hola mundo desde R'
In [5]:
# R es como una calculadora
# Suma
5 + 5
# Mult
3 * 3
# Division
20 / 5
# Potencia
3 ** 2
# Residuo (%%)
21 %% 5
10
9
4
9
1
In [6]:
# Cadenas de texto
"Hola mundo"
'Hola mundo'
In [7]:
# Varibles
# =: asignacion
x = 5
x
5
In [8]:
# <-: En R: significa tambien asignacion
y <- 5
y
5
In [9]:
"Hola" * 2
Error in "Hola" * 2: non-numeric argument to binary operator
Traceback:

CLASE EXTRA¶

Lo que veremos¶

  • Bucles y condicionales
  • Vectores
  • Secuencias
In [7]:
# Operadores de comparacion

# distinto de
0 != 1

# igual a
0 == 1

# menor o igual
10 <= 20
TRUE
FALSE
TRUE
In [8]:
# Booleanos
# En Python: True, False
T
F
TRUE
FALSE
In [9]:
TRUE

FALSE
TRUE
FALSE
In [12]:
# Operadores logicos
# AND---->&
T & T
TRUE
In [13]:
# OR:  |
F | F
FALSE
In [14]:
# not: !
!F
TRUE
  • En Python input(): solicita información al usuario. float("5")-->5

  • En Rreadline(): solicita información al usuario. as.numeric("5")--->5

In [16]:
edad <- as.numeric(readline(prompt="Ingrese su edad: "))
edad * 100
1000
In [18]:
"bienvenido a la calculadora de áreas de círculos"
r <- as.numeric(readline(prompt="Ingrese el valor del radio"))

# Calculo del area
area  <- pi * r ^ 2

area
'bienvenido a la calculadora de áreas de círculos'
314.159265358979

If anidado en Python:¶

cal = 8.5

if cal>=0 and cal<=10:
  # condicion1
  if cal<6:
    # Accion1:
    print("Reprobado")
  # condicion2
  elif cal>=6 and cal<8:
    # accion2
    print("Bien")
  # condicion3
  elif cal>=8 and cal<9.5:
    # accion2
    print("Muy bien") 
  else:
    print("Excelente")
else:
  print("La calificación debe ser mayor o igual a cero y menor o igual a 10")
In [23]:
cal <- as.numeric(readline(prompt="Ingrese calificación: "))

if (cal >= 0 & cal <= 10){
    
    if (cal < 6){
        "Reprobado"
    # En vez de escribir elif vamos a escribir else if
    } else if (cal >= 6 & cal < 8){
        "Bien"
    } else if (cal >= 8 & cal < 9.5){
        "Muy bien"
    } else {
        "Excelente"
    }
} else {
    "Calificación errónea"
}
'Excelente'

Estructura dle if en Python:

if <condicion>:
    # accion 1
else:
    # accion 2

Estructura básica en R:

if (<condicion>){
    # accion 1
} else{
    # accion 2
}

En kaggle R¶

In [19]:
if (condicion){
    # accion1
} else {
    # accion 2
}
'bien'

Bucles¶

  • For: Repetir una acción un número determinado de veces
  • While: Repetir una acción mientras una condición sea verdadera
In [ ]:
for (recorrido) {
    # accion a repetir
}
In [28]:
# variable auxiliar del bucle: i
# c(): define vectores o rangos de numeros
# c(1,2,3)
# Primera vuelta: i=1 ---> print("Hola")
# Segunda vuelta: i=2 ---> print("Hola")
# Tercer vuelta: i=3 ---> print("Hola")
for (i in c(1,2,3, 40)){
    # Accion a repetir
    print("hola")
}
[1] "hola"
[1] "hola"
[1] "hola"
[1] "hola"
In [29]:
for (i in c(10,100)){
    # Accion a repetir
    print("hola")
}
[1] "hola"
[1] "hola"
In [32]:
for (i in c(1,2,3)){
    # Accion a repetir
    print(i ** 2)
}
[1] 1
[1] 4
[1] 9
In [34]:
c(1:100)
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
  100. 100
In [36]:
# forma 1: 
vect1 <- c(1,10,5, 90)
vect2 <- c(-10: 10)

vect1
vect2
  1. 1
  2. 10
  3. 5
  4. 90
  1. -10
  2. -9
  3. -8
  4. -7
  5. -6
  6. -5
  7. -4
  8. -3
  9. -2
  10. -1
  11. 0
  12. 1
  13. 2
  14. 3
  15. 4
  16. 5
  17. 6
  18. 7
  19. 8
  20. 9
  21. 10
In [37]:
# forma 2:
-10:10
  1. -10
  2. -9
  3. -8
  4. -7
  5. -6
  6. -5
  7. -4
  8. -3
  9. -2
  10. -1
  11. 0
  12. 1
  13. 2
  14. 3
  15. 4
  16. 5
  17. 6
  18. 7
  19. 8
  20. 9
  21. 10
In [39]:
# Forma 3
seq(1, 20)

1:20

c(1:20)
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
In [42]:
seq(1,20, 0.5)
  1. 1
  2. 1.5
  3. 2
  4. 2.5
  5. 3
  6. 3.5
  7. 4
  8. 4.5
  9. 5
  10. 5.5
  11. 6
  12. 6.5
  13. 7
  14. 7.5
  15. 8
  16. 8.5
  17. 9
  18. 9.5
  19. 10
  20. 10.5
  21. 11
  22. 11.5
  23. 12
  24. 12.5
  25. 13
  26. 13.5
  27. 14
  28. 14.5
  29. 15
  30. 15.5
  31. 16
  32. 16.5
  33. 17
  34. 17.5
  35. 18
  36. 18.5
  37. 19
  38. 19.5
  39. 20
In [35]:
for (i in c(1:100)){
    # Accion a repetir
    print(i ** 2)
}
[1] 1
[1] 4
[1] 9
[1] 16
[1] 25
[1] 36
[1] 49
[1] 64
[1] 81
[1] 100
[1] 121
[1] 144
[1] 169
[1] 196
[1] 225
[1] 256
[1] 289
[1] 324
[1] 361
[1] 400
[1] 441
[1] 484
[1] 529
[1] 576
[1] 625
[1] 676
[1] 729
[1] 784
[1] 841
[1] 900
[1] 961
[1] 1024
[1] 1089
[1] 1156
[1] 1225
[1] 1296
[1] 1369
[1] 1444
[1] 1521
[1] 1600
[1] 1681
[1] 1764
[1] 1849
[1] 1936
[1] 2025
[1] 2116
[1] 2209
[1] 2304
[1] 2401
[1] 2500
[1] 2601
[1] 2704
[1] 2809
[1] 2916
[1] 3025
[1] 3136
[1] 3249
[1] 3364
[1] 3481
[1] 3600
[1] 3721
[1] 3844
[1] 3969
[1] 4096
[1] 4225
[1] 4356
[1] 4489
[1] 4624
[1] 4761
[1] 4900
[1] 5041
[1] 5184
[1] 5329
[1] 5476
[1] 5625
[1] 5776
[1] 5929
[1] 6084
[1] 6241
[1] 6400
[1] 6561
[1] 6724
[1] 6889
[1] 7056
[1] 7225
[1] 7396
[1] 7569
[1] 7744
[1] 7921
[1] 8100
[1] 8281
[1] 8464
[1] 8649
[1] 8836
[1] 9025
[1] 9216
[1] 9409
[1] 9604
[1] 9801
[1] 10000
In [44]:
for (i in seq(1,2, 0.1)){
    # Accion a repetir
    print(i ** 2)
}
[1] 1
[1] 1.21
[1] 1.44
[1] 1.69
[1] 1.96
[1] 2.25
[1] 2.56
[1] 2.89
[1] 3.24
[1] 3.61
[1] 4
In [48]:
v1 <- c(1,3,5)
v2 <- c(2,4,6)
v1 * v2
  1. 2
  2. 12
  3. 30
In [49]:
v1 + v2
  1. 3
  2. 7
  3. 11
In [50]:
v1 ** v2
  1. 1
  2. 81
  3. 15625
In [51]:
v1 %% v2
  1. 1
  2. 3
  3. 5
In [57]:
length(v10)
199
In [52]:
v10 <- seq(1, 100, 0.5)
v10
  1. 1
  2. 1.5
  3. 2
  4. 2.5
  5. 3
  6. 3.5
  7. 4
  8. 4.5
  9. 5
  10. 5.5
  11. 6
  12. 6.5
  13. 7
  14. 7.5
  15. 8
  16. 8.5
  17. 9
  18. 9.5
  19. 10
  20. 10.5
  21. 11
  22. 11.5
  23. 12
  24. 12.5
  25. 13
  26. 13.5
  27. 14
  28. 14.5
  29. 15
  30. 15.5
  31. 16
  32. 16.5
  33. 17
  34. 17.5
  35. 18
  36. 18.5
  37. 19
  38. 19.5
  39. 20
  40. 20.5
  41. 21
  42. 21.5
  43. 22
  44. 22.5
  45. 23
  46. 23.5
  47. 24
  48. 24.5
  49. 25
  50. 25.5
  51. 26
  52. 26.5
  53. 27
  54. 27.5
  55. 28
  56. 28.5
  57. 29
  58. 29.5
  59. 30
  60. 30.5
  61. 31
  62. 31.5
  63. 32
  64. 32.5
  65. 33
  66. 33.5
  67. 34
  68. 34.5
  69. 35
  70. 35.5
  71. 36
  72. 36.5
  73. 37
  74. 37.5
  75. 38
  76. 38.5
  77. 39
  78. 39.5
  79. 40
  80. 40.5
  81. 41
  82. 41.5
  83. 42
  84. 42.5
  85. 43
  86. 43.5
  87. 44
  88. 44.5
  89. 45
  90. 45.5
  91. 46
  92. 46.5
  93. 47
  94. 47.5
  95. 48
  96. 48.5
  97. 49
  98. 49.5
  99. 50
  100. 50.5
  101. 51
  102. 51.5
  103. 52
  104. 52.5
  105. 53
  106. 53.5
  107. 54
  108. 54.5
  109. 55
  110. 55.5
  111. 56
  112. 56.5
  113. 57
  114. 57.5
  115. 58
  116. 58.5
  117. 59
  118. 59.5
  119. 60
  120. 60.5
  121. 61
  122. 61.5
  123. 62
  124. 62.5
  125. 63
  126. 63.5
  127. 64
  128. 64.5
  129. 65
  130. 65.5
  131. 66
  132. 66.5
  133. 67
  134. 67.5
  135. 68
  136. 68.5
  137. 69
  138. 69.5
  139. 70
  140. 70.5
  141. 71
  142. 71.5
  143. 72
  144. 72.5
  145. 73
  146. 73.5
  147. 74
  148. 74.5
  149. 75
  150. 75.5
  151. 76
  152. 76.5
  153. 77
  154. 77.5
  155. 78
  156. 78.5
  157. 79
  158. 79.5
  159. 80
  160. 80.5
  161. 81
  162. 81.5
  163. 82
  164. 82.5
  165. 83
  166. 83.5
  167. 84
  168. 84.5
  169. 85
  170. 85.5
  171. 86
  172. 86.5
  173. 87
  174. 87.5
  175. 88
  176. 88.5
  177. 89
  178. 89.5
  179. 90
  180. 90.5
  181. 91
  182. 91.5
  183. 92
  184. 92.5
  185. 93
  186. 93.5
  187. 94
  188. 94.5
  189. 95
  190. 95.5
  191. 96
  192. 96.5
  193. 97
  194. 97.5
  195. 98
  196. 98.5
  197. 99
  198. 99.5
  199. 100
In [53]:
# promedio de las entradas del vector
mean(v10)
50.5
In [54]:
v11 <- c(3,1,0)
# orden ascendente
sort(v11)
  1. 0
  2. 1
  3. 3
In [55]:
# Orden descendente
sort(v11, decreasing = TRUE)
  1. 3
  2. 1
  3. 0
In [56]:
length(v11)
3
In [58]:
# Contador
n <- 0
n
0
In [59]:
n <- 1
n
1
In [60]:
n <- 2
n
2
In [64]:
k <- 0
#    0 + 1
#    1
# k <- 1
k <- k + 1
#    1 + 1
# k <- 2
k <- k + 1
k
2
In [ ]:
while (condicion){
    # accion a repetir
}
In [66]:
count <- 0

while (count < 10){
    print("hola")
    count <- count + 1
}
"Por fin el bucle terminó"
[1] "hola"
[1] "hola"
[1] "hola"
[1] "hola"
[1] "hola"
[1] "hola"
[1] "hola"
[1] "hola"
[1] "hola"
[1] "hola"
'Por fin el bucle terminó'
In [68]:
1:10

c(1:10)

seq(1, 10, 0.5)
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  1. 1
  2. 1.5
  3. 2
  4. 2.5
  5. 3
  6. 3.5
  7. 4
  8. 4.5
  9. 5
  10. 5.5
  11. 6
  12. 6.5
  13. 7
  14. 7.5
  15. 8
  16. 8.5
  17. 9
  18. 9.5
  19. 10