require(readxl)
require(dplyr)
Principales operaciones aritméticas de Excel en R
Una de las tareas más comunes dentro del análisis de datos es el trabajo de variables numéricas, desde donde es usual necesitar extraer compendios, resúmenes o simplemente usarlas como inputs para el cálculo de otras variables y para esto se hace muy necesario conocer cómo trabajar con operaciones aritméticas. En Excel y R, esto se realiza a través de fórmulas y operadores, por lo que a continuación, veremos los principales grupos de operaciones disponibles en ambos sistemas:
Acerca de la información
Para este artículo, utilizaremos como ejemplo el archivo op_aritméticas.xlsx en donde contamos con varias hojas con datos que nos servirán a lo largo de los ejercicios. Para cargar nuestra tabla, usaremos las herramientas de los paquetes readxl y dplyr (puedes revisar los detalles en nuestro artículo ¿Cómo cargar (leer) una tabla de Excel en R?), por lo que el primer paso será cargar ambos:
Abordaremos el tema a partir de 6 ejercicios:
Adición, sustracción, multiplicación y división
Para abordar las primeras 4 operaciones de la aritmética, usaremos la hoja valores
de nuestro archivo. Como sabemos, la definición de una fórmula en Excel inicia con colocar el símbolo =
o +
. Luego, escribiremos los argumentos y los operadores correspondientes.
<- read_excel(path = "op_aritméticas.xlsx",
valores sheet = "valores")
Adición
En Excel: Hay dos formas.
En R:
$a_mas_b <- valores$a + valores$b
valores
$a_mas_b valores
[1] 30.888 55.765 163.981 103.080 123.067 167.910 108.113 129.922 119.150
[10] 59.715
Sustracción:
En Excel:
En R:
$a_menos_b <- valores$a - valores$b
valores
$a_menos_b valores
[1] 26.888 25.765 19.981 -56.920 -20.933 7.910 16.113 -36.078 37.150
[10] -42.285
Multiplicación:
En Excel: Hay dos formas.
En R:
$a_por_b <- valores$a * valores$b
valores
$a_por_b valores
[1] 57.776 611.475 6622.632 1846.400 3676.824 7032.800 2857.198 3894.526
[9] 3204.150 444.465
División
En Excel:
En R:
$a_entre_b <- valores$a / valores$b
valores
$a_entre_b valores
[1] 14.4440000 2.7176667 1.2775139 0.2885000 0.7092639 1.0988750
[7] 1.3502826 0.5653253 1.9060976 0.1708824
Cociente de división
En Excel:
En R:
$cociente_a_entre_b <- valores$a %/% valores$b
valores
$cociente_a_entre_b valores
[1] 14 2 1 0 0 1 1 0 1 0
Residuo de división
En Excel:
En R:
$residuo_a_entre_b <- valores$a %% valores$b
valores
$residuo_a_entre_b valores
[1] 0.888 10.765 19.981 23.080 51.067 7.910 16.113 46.922 37.150 8.715
En Excel, una vez que hallamos calculado todo la la primera fila, podemos extender todos los cálculos seleccionando las filas calculadas y luego dando doble click sobre el pequeño cuadradito verde que aparece en la esquina inferior derecha de nuestra selección:
El resultado:
En R no es necesario realizar un procedimiento adicional, pues en cada proceso de asignación se ha ido guardando los resultados de cada operación, por lo que basta con mostrar la tabla:
print(valores)
# A tibble: 10 × 8
a b a_mas_b a_menos_b a_por_b a_entre_b cociente_a_entre_b
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 28.9 2 30.9 26.9 57.8 14.4 14
2 40.8 15 55.8 25.8 611. 2.72 2
3 92.0 72 164. 20.0 6623. 1.28 1
4 23.1 80 103. -56.9 1846. 0.288 0
5 51.1 72 123. -20.9 3677. 0.709 0
6 87.9 80 168. 7.91 7033. 1.10 1
7 62.1 46 108. 16.1 2857. 1.35 1
8 46.9 83 130. -36.1 3895. 0.565 0
9 78.2 41 119. 37.2 3204. 1.91 1
10 8.72 51 59.7 -42.3 444. 0.171 0
# ℹ 1 more variable: residuo_a_entre_b <dbl>
Exponenciales
Usaremos ahora la hoja exponenciales
de nuestro archivo.
<- read_excel(path = "op_aritméticas.xlsx",
exponenciales sheet = "exponenciales")
Valor al cuadrado
En Excel:
En R:
$valor_al_2 <- exponenciales$valor ^ 2
exponenciales
$valor_al_2 exponenciales
[1] 8556.25 313.29 924.16 5446.44 9940.09 6304.36 3660.25 12.96 1246.09
[10] 1.69
Valor a 3,15
En Excel:
En R:
$valor_al_3.15 <- exponenciales$valor ^ 3.15
exponenciales
$valor_al_3.15 exponenciales
[1] 1.560797e+06 8.533276e+03 4.688693e+04 7.662624e+05 1.976468e+06
[6] 9.647940e+05 4.097599e+05 5.653962e+01 7.507413e+04 2.285186e+00
Raíz cuadrado de un valor
En Excel:
En R:
# Modo 1
$valor_raiz_2 <- exponenciales$valor ^ 0.5
exponenciales
# Modo 2: Usando la función 'sqrt'
$valor_raiz_2 <- sqrt(x = exponenciales$valor)
exponenciales
$valor_raiz_2 exponenciales
[1] 9.617692 4.207137 5.513620 8.590693 9.984989 8.910668 7.778175 1.897367
[9] 5.941380 1.140175
Raíz 3,15 de un valor
En Excel:
En R:
$valor_raiz_3.5 <- exponenciales$valor ^ (1/3.15)
exponenciales
$valor_raiz_3.5 exponenciales
[1] 4.208933 2.489900 2.956334 3.917723 4.310289 4.009753 3.678211 1.501772
[9] 3.099967 1.086857
La prioridad de las operaciones es un conjunto de reglas que determinan el orden en que se deben realizar las operaciones en una expresión matemática. Estas reglas evitan la ambigüedad en la interpretación de las expresiones matemáticas. Existen varios sistemas que, si bien difieren ligeramente en las prioridades, estas pequeñas diferencias pueden influir grandemente en un resultado si no ponemos la debida atención. Tanto Excel cuanto R usan el sistema estadounidense PEMDAS, que sirve como acrónimo de paréntesis, exponentes, multiplicación, división, adición, sustracción, lo que indica la prioridad de evaluación en orden decreciente.
2 elevado a un valor
En Excel:
En R:
$`2_al_valor` <- 2 ^ exponenciales$valor
exponenciales
$`2_al_valor` exponenciales
[1] 7.002846e+27 2.129271e+05 1.416811e+09 1.644424e+22 1.029652e+30
[6] 7.975936e+23 1.630477e+18 1.212573e+01 4.230180e+10 2.462289e+00
e
elevado a un valor
En Excel:
En R:
$e_al_valor <- exp(x = exponenciales$valor)
exponenciales
$e_al_valor exponenciales
[1] 1.486756e+40 4.864210e+07 1.594235e+13 1.124431e+32 1.991406e+43
[6] 3.040758e+34 1.882852e+26 3.659823e+01 2.140894e+15 3.669297e+00
En muchas operaciones se requiere el uso de dos constantes importantes: el número de euler y =EXP(1)
Y =PI()
respectivamente. Por otro lado, en R, se llega a ellas a través de exp(x = 1)
y pi
.
Logaritmos
Usaremos ahora la hoja logaritmos
de nuestro archivo.
<- read_excel(path = "op_aritméticas.xlsx",
logaritmos sheet = "logaritmos")
Logaritmo de un valor en base 2
En Excel:
En R:
# Modo 1
$log_valor_base_2 <- log(x = logaritmos$valor, base = 2)
logaritmos
# Modo 2: usando la función 'log2'
$log_valor_base_2 <- log2(x = logaritmos$valor)
logaritmos
$log_valor_base_2 logaritmos
[1] 6.5313815 4.1456775 4.9259994 6.2055489 6.6395216 6.3110671 5.9188632
[8] 1.8479969 5.1415963 0.3785116
Logaritmo de un valor en base 10
En Excel:
En R:
# Modo 1
$log_valor_base_10 <- log(x = logaritmos$valor, base = 10)
logaritmos
# Modo 2: usando la función 'log10'
$log_valor_base_10 <- log10(x = logaritmos$valor)
logaritmos
$log_valor_base_10 logaritmos
[1] 1.9661417 1.2479733 1.4828736 1.8680564 1.9986952 1.8998205 1.7817554
[8] 0.5563025 1.5477747 0.1139434
Logaritmo de un valor en base e
En Excel:
En R:
$ln_valor <- log(x = logaritmos$valor, base = exp(x = 1))
logaritmos
$ln_valor logaritmos
[1] 4.5272086 2.8735646 3.4144426 4.3013587 4.6021657 4.3744984 4.1026434
[8] 1.2809338 3.5638830 0.2623643
Pitágoras y MRUV
Si deseas practicar lo aprendido hasta ahora, te retamos a completar los valores vacíos en las hojas pitágoras
y mruv
. No olvides que R es ante todo un lenguaje, por lo que la mejor forma de aprender a usarlo es practicando (como cualquier otro idioma).
Operaciones trigonométricas
Usaremos ahora la hoja ángulos
de nuestro archivo.
<- read_excel(path = "op_aritméticas.xlsx",
angulos sheet = "ángulos")
Conversión de grados sexagesimales a radianes
En Excel:
En R:
$angulo_rad[1] <- angulos$angulo_grad[1] / 180 * pi
angulos
$angulo_rad[1] angulos
[1] 5.148721
Conversión de radianes a grados sexagesimales
En Excel:
En R:
$angulo_grad[2] <- angulos$angulo_rad[2] * 180 / pi
angulos
$angulo_grad[2] angulos
[1] 119.5763
Seno de un ángulo
En Excel:
En R:
$seno <- sin(x = angulos$angulo_rad)
angulos
$seno angulos
[1] -0.9063078 0.8696992
Coseno de un ángulo
En Excel:
En R:
$coseno <- cos(x = angulos$angulo_rad)
angulos
$coseno angulos
[1] 0.4226183 -0.4935820
Tangente de un ángulo
En Excel:
En R:
$tangente <- tan(x = angulos$angulo_rad)
angulos
$tangente angulos
[1] -2.144507 -1.762016
Funciones de arco
En Excel:
En R:
$arco_seno <- asin(x = angulos$seno)
angulos$arco_coseno <- acos(x = angulos$seno)
angulos$arco_tangente <- atan(x = angulos$seno)
angulos
$arco_seno angulos
[1] -1.134464 1.054593
$arco_coseno angulos
[1] 2.7052603 0.5162037
$arco_tangente angulos
[1] -0.7362892 0.7158199