# Ejercicio 1
25 + 17
6 * 8
sqrt(144)
Soluciones de la Práctica de la Unidad 1
Ejercicio 1
Para crear un nuevo script y guardarlo, podés seguir los ejemplos vistos en #sec-scripts. El contenido del script tiene que ser:
Ejercicio 2
- Para acceder a la documentación de la función
round()
, se puede ejecutar en la consola de R:
?round
o
help(round)
- Según la ayuda de R, la función
round()
tiene los siguientes argumentos:
x
: El número o vector de números que se desea redondear.
digits
: El número de cifras decimales al que se desea redondearx
. Puede ser positivo (para redondear decimales) o negativo (para redondear a múltiplos de 10).
...
: representa el uso opcional de otros argumentos, es algo que podemos ignorar por ahora.
- Obligatorio:
x
, ya que es el número a redondear.
- Opcional:
digits
, que por defecto es0
, lo que significa que la función redondeará al número entero más cercano si no se especifica un valor distinto.
- Obligatorio:
round(3.14159, digits = 0) # Redondeo a 0 decimales → Resultado: 3
[1] 3
round(3.14159, digits = 1) # Redondeo a 1 decimal → Resultado: 3.1
[1] 3.1
round(3.14159, digits = 2) # Redondeo a 2 decimales → Resultado: 3.14
[1] 3.14
round(3.14159, 2)
[1] 3.14
round(x = 3.14159, digits = 2)
[1] 3.14
round(digits = 2, x = 3.14159)
[1] 3.14
Ejercicio 3
<- 10
x <- "Hola"
y <- 5 z
- Podemos verificar el tipo de cada objeto con la función
typeof()
:
typeof(x)
[1] "double"
typeof(y)
[1] "character"
typeof(z)
[1] "double"
- Ejecutamos la siguiente instrucción:
<- x * 6 z
Ahora, z
almacenará el valor:
z
[1] 60
- Obtenemos un error porque
x
es un número (double
), mientras quey
es un texto (character
). En R, no es posible realizar operaciones matemáticas entre objetos de tipo diferente.
+ y x
Error in x + y: non-numeric argument to binary operator
Ejercicio 4
load("practica1_ambiente.RData")
Se incorporaron 6 objetos al ambiente:
Identificador | Tipo de vector | Valor |
---|---|---|
var1 |
logical | TRUE |
var2 |
double | 200.12 |
var3 |
character | "hola" |
var4 |
character | "chau" |
var5 |
integer | -49L |
var6 |
character | "Hola" |
typeof(var1)
[1] "logical"
typeof(var2)
[1] "double"
typeof(var3)
[1] "character"
typeof(var4)
[1] "character"
typeof(var5)
[1] "integer"
typeof(var6)
[1] "character"
Ejercicio 5
< 0 || var5 < 0 var2
[1] TRUE
< 0 && var5 < 0 var2
[1] FALSE
%% (var5 + 100) < 10 var2
[1] FALSE
- No son iguales porque uno tiene una letra mayúscula, “H” es un caracter distinto de “h” y por lo tanto son cadenas de texto diferentes.
== var6 var3
[1] FALSE
Ejercicio 6
Operación | edad <- 21 , altura <- 1.90 |
edad <- 17 , altura <- 1.90 |
edad <- 21 , altura <- 1.50 |
---|---|---|---|
(edad > 18) && (altura < 1.70) |
FALSE |
FALSE |
TRUE |
(edad > 18) || (altura < 1.70) |
TRUE |
FALSE |
TRUE |
!(edad > 18) |
FALSE |
TRUE |
FALSE |
Verificación en R:
# Primera columna
<- 21
edad <- 1.90
altura
> 18) && (altura < 1.70) (edad
[1] FALSE
> 18) || (altura < 1.70) (edad
[1] TRUE
!(edad > 18)
[1] FALSE
# Segunda columna
<- 17
edad <- 1.90
altura
> 18) && (altura < 1.70) (edad
[1] FALSE
> 18) || (altura < 1.70) (edad
[1] FALSE
!(edad > 18)
[1] TRUE
# Tercera columna
<- 21
edad <- 1.50
altura
> 18) && (altura < 1.70) (edad
[1] TRUE
> 18) || (altura < 1.70) (edad
[1] TRUE
!(edad > 18)
[1] FALSE
Ejercicio 7
Razonamiento paso a paso:
1 + 2 + (3 + 4) * ((5 * 6 %% 7 * 8) - 9) - 10
1 + 2 + (3 + 4) * ((5 * 6 * 8) - 9) - 10
1 + 2 + (3 + 4) * (240 - 9) - 10
1 + 2 + 7 * 231 - 10
1 + 2 + 1617 - 10
1610
Verificación en R:
1 + 2 + (3 + 4) * ((5 * 6 %% 7 * 8) - 9) - 10
[1] 1610
Ejercicio 8
Siempre es verdadera porque sea cual fuere x
, siempre va a ser distinta a alguno de los dos, incluso si es 4, es distinta a 17 y viceversa.
Recordemos que:
!=
significa “distinto de”.
||
es el operador “o” lógico (OR), que devuelveTRUE
si al menos una de las condiciones esTRUE
.
Luego, de la única forma para que la expresión sea FALSE
, es que ambas condiciones sean FALSE
al mismo tiempo. Veamos si esto es posible:
- La primera condición
(x != 4)
esFALSE
solo cuandox = 4
.
- La segunda condición
(x != 17)
esFALSE
solo cuandox = 17
.
Por lo visto, ambas condiciones no pueden ser FALSE
simultáneamente, ya que un número no puede ser 4
y 17
al mismo tiempo. Dado que siempre hay al menos una condición que es TRUE
, la expresión es siempre verdadera, sin importar el valor de x
.
Ejercicio 9
El primer ítem excluye a los años terminados en 00, los cuales son evaluados en la segunda regla. El segundo ítem incluye automáticamente a los divisibles por 4 porque 400 es divisible por 4. Entonces, la operación lógica que determina si un año es bisiesto es: ((año %% 4 == 0) && (año %% 100 != 0)) || (año %% 400 == 0)
.
En R:
<- 2024
año %% 4 == 0) && (año %% 100 != 0)) || (año %% 400 == 0) ((año
[1] TRUE
<- 2025
año %% 4 == 0) && (año %% 100 != 0)) || (año %% 400 == 0) ((año
[1] FALSE
Ejercicio 10
- ¿Cuáles son los valores finales de
a
yb
?
<- 10
a <- a * 2
b <- a + 5
a <- b - a
b a
[1] 15
b
[1] 5
- ¿Cuáles son los valores finales de
m
yn
?
<- 5
m <- 2 * m
n <- m + 3
m <- n + m
n <- n - 4
m m
[1] 14
n
[1] 18
- ¿Cuál es el valor final de
y
?
<- 6
x <- 2
y <- x / y + x * y
x <- x^2 %% 10
y <- y * 2
y y
[1] 10
- ¿Cuál es el valor final de
resultado
?
<- 5
a <- 2
b <- 3
c
<- a^b - (c * b) + (a %% c)
resultado resultado
[1] 21
- ¿Cuáles son los valores finales de
x
,y
yz
?
<- 8
x <- 3
y <- 2
z
<- x %% y + z^y
x <- (x + y) %/% z
y <- z + x - y
z x
[1] 10
y
[1] 6
z
[1] 6
Ejercicio 11
Se pueden cambiar los valores de a
, b
y h
.
<- 5
a <- 4
b <- 3
h <- a * b * h
volumen <- 2 * (a * b + a * h + b * h)
area cat("El área es igual a", area, "y el volumen es igual a", volumen)
El área es igual a 94 y el volumen es igual a 60
Ejercicio 12
- Para identificar la ruta informática de un archivo, podés seguir los pasos mostrados en Carpetas, archivos y rutas informáticas.
- Se puede saber cuál es el working directory con:
getwd()
Ejercicio 13
El resultado de crear las carpetas y subcarpetas tiene que ser similar al que se ve en la Figura 5.2. El proyecto se crea desde RStudio siguiendo los pasos de la Figura 5.4.