Clasificación: Error relacionado con objetos / Llamado de variables.
Calcular la media de la variable (“wt”) del conjunto de datos “mtcars”.
# Intentar calcular la media llamando a la variable sin el data frame
mean(wt)
## Error: objeto 'wt' no encontrado
¿Qué dice R?
Error in mean(wt) : object 'wt' not found
¿Por qué ocurre? R no sabe que “wt” hace parte del dataframe llamado “mtcars”, por ende busca el objeto wt como independiente y al no econtrarlo arroja que no existe.
¿Cómo se soluciona?
Se utiliza el signo “$”` indicando el nombre del data frame y luego la variable
mean(mtcars$wt)
## [1] 3.21725
Clasficación Errores de sintaxis / Argumentos de una función.
¿Qué se intentaba hacer? Copiar argumentos adicionales y pegarlos directamente al codigo de la funcion
Código que genera el error
# Pegar directamente la ayuda sin separar con coma y dejando los puntos suspensivos de la plantilla
mean(mtcars$wt trim = 0, ...)
## Error in parse(text = input): <text>:2:16: unexpected symbol
## 1: # Pegar directamente la ayuda sin separar con coma y dejando los puntos suspensivos de la plantilla
## 2: mean(mtcars$wt trim
## ^
¿Qué dice R?
Error: unexpected symbol in "mean(mtcars$wt trim" o
Error: unexpected '...' in "..."
¿Por qué ocurre?
Al pegar la informacion directamente del sitio, muestra la sintaxis general. Si se copia y pega directamente sin poner las comas o dejando los tres puntos literales, R no reconoce la estructura gramatical de la instruccion.
¿Cómo se soluciona?
Separar cada argumento con una coma ,.
Eliminar los puntos suspensivos ... de la
documentación.
Verificar que los paréntesis de apertura y cierre coincidan exactamente.
mean(mtcars$wt, trim = 0, na.rm = TRUE)
## [1] 3.21725
Clasificación Error de sintaxis / Instrucción incompleta.
¿Qué se intentaba hacer?
Correr una gráfica básica en RStudio.
Código que genera el error
Abrimos un paréntesis pero nunca lo cerramos
plot(mtcars$wt,mtcars$mpg,
main = "Rendimiento del carro vs peso",
xlab="peso del vehiculo (miles de libras)",
ylab="rendimiento(millas por galon)",
pch = 19,
col = "darkblue"
## Error in parse(text = input): <text>:9:0: unexpected end of input
## 7: col = "darkblue"
## 8:
## ^
En la consola el símbolo habitual > cambia a un + y la consola se queda pegada esperando.Por su parte, en la pantalla aparece “Incomplete expression”
¿Por qué ocurre? R entiende que la frase quedó a medias porque dejamos un paréntesis o una comilla abierta. El signo + significa: “Estoy esperando a que termines la idea”.
¿Cómo se soluciona? Escribir en la consola el paréntesis o comilla de cierre que faltaba también presionar la tecla (Esc) en el teclado para cancelar la orden y volver a tener el cursor normal, en ultimas reiniciar R.
Código corregido
plot(mtcars$wt,mtcars$mpg,
main = "Rendimiento del carro vs peso",
xlab="peso del vehiculo (miles de libras)",
ylab="rendimiento(millas por galon)",
pch = 19,
col = "darkblue"
)
Clasificación: Error de escritura / Sensibilidad a mayúsculas.
Calcular la media o usar una variable escribiendo su nombre con letras mayúsculas.
# La variable en la tabla es 'wt' en minúscula
mean(mtcars$WT)
## Warning in mean.default(mtcars$WT): argument is not numeric or logical:
## returning NA
## [1] NA
in mean.default(mtcars$WT) : argument is not numeric or logical: returning NA
Para R wt, Wt y WT son tres cosas totalmente distintas. Como WT en mayúsculas no existe dentro de mtcars, devuelve un valor vacío o nulo (NULL/NA).
Escribir el nombre exacto de la columna en minúsculas (usar la tecla Tab después del $ ayuda a autocompletar sin equivocarse).
mean(mtcars$wt)
## [1] 3.21725
Clasificación: Error de caracteres tipográficos y separación de argumentos.
Ponerle etiquetas de texto a un gráfico copiando código desde Word o un documento de texto.
# No poner comas entre opciones, quitarle parentesis o colocar coma diferente
plot ( mtcars$wt,mtcars$mpg,
main = "Rendimiento del carro vs peso"
xlab="peso del vehiculo (miles de libras)",
ylab="rendimiento(millas por galon),
pch = 19,
col = "darkblue"
)
## Error in parse(text = input): <text>:5:3: unexpected symbol
## 4: main = "Rendimiento del carro vs peso"
## 5: xlab
## ^
Error: unexpected symbol in: “main =”Rendimiento del carro vs peso”no tiene , xlab” Error: unexpected symbol in: ” pch = 19, col = “darkblue” Error: inesperado ‘)’ en “)” falta la “
Cuando olvidamos poner un signo, sea coma o comillas entre la estructura del gráfico, R se confunde y no sabe dónde termina una opción y empieza la otra, tambien pierde la funcion del texto que se desa crear y junta argumentos
¿Cómo se soluciona? -Cerrando comillas -Cerrando parentesis -Agregar comas para separar argumentos dentro de la funcion
Código corregido
plot(mtcars$wt,mtcars$mpg,
main = "Rendimiento del carro vs peso",
xlab="peso del vehiculo (miles de libras)",
ylab="rendimiento(millas por galon)",
pch = 19,
col = "darkblue"
)
Adicional se menciona en el video, las diferentes comas que exiten en R
que cambian la funcion.
Clasificación: Error relacionado con paquetes.
¿Qué se intentaba hacer? Usar una función de un paquete especifico (por ejemplo, del paquete ggplot2) sin haber cargado la librería
Código que genera el error
# Intentar graficar con ggplot sin haber cargado la librería en esta sesión
ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point()
## Error in ggplot(mtcars, aes(x = wt, y = mpg)): no se pudo encontrar la función "ggplot"
Error en ggplot(mtcars, aes(x = wt, y = mpg)): no se pudo encontrar la función “ggplot”
Aunque el paquete ya esté instalado en el computador, R no esta activo. Como R no sabe de dónde sale la palabra ggplot, asume que no existe y saca el error “could not find function”.
Activar la librería al inicio del código usando library(ggplot2).
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.3
ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point()
Clasificación: Enmascaramiento (Masking) / Conflicto de paquetes.
Calcular un valor rezagado (lag) de la columna de rendimiento (mpg) de la base de datos mtcars.
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.5.3
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(stats)
# Si usamos lag sin especificar el paquete, dplyr puede enmascarar a stats
lag(mtcars$mpg, 1)
## [1] NA 21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.2
## [16] 10.4 10.4 14.7 32.4 30.4 33.9 21.5 15.5 15.2 13.3 19.2 27.3 26.0 30.4 15.8
## [31] 19.7 15.0
A veces corre pero da resultados raros, o sale el mensaje: The following objects are masked from ‘package:stats’: select.
Dos paquetes usan el mismo nombre para cosas distintas, el último paquete que cargaste “tapa” al anterior. R se confunde y usa la fórmula equivocada.
Le indicamos exactamente de qué paquete queremos sacar la función escribiendo el nombre del paquete, dos puntos dobles (::) y la función.
# Usando lag del paquete dplyr:
dplyr::lag(mtcars$mpg, 1)
## [1] NA 21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.2
## [16] 10.4 10.4 14.7 32.4 30.4 33.9 21.5 15.5 15.2 13.3 19.2 27.3 26.0 30.4 15.8
## [31] 19.7 15.0
# O del paquete estadístico por defecto (stats):
stats::lag(ts(mtcars$mpg), 1)
## Time Series:
## Start = 0
## End = 31
## Frequency = 1
## [1] 21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.2 10.4
## [16] 10.4 14.7 32.4 30.4 33.9 21.5 15.5 15.2 13.3 19.2 27.3 26.0 30.4 15.8 19.7
## [31] 15.0 21.4