ggplot2 - Trazado de datos en R: Error en plot.window(...): se necesitan valores finitos, xlim

CorePress2024-01-25  13

Intento trazar algunos datos en R. Soy un usuario básico y estoy aprendiendo por mi cuenta. Sin embargo, cada vez que intento trazar un argumento, falla y no estoy seguro de por qué.

> View(Pokemon_BST)
> Pokemon_BST <- read.csv("~/Documents/Pokemon/Pokemon_BST.csv")
>   View(Pokemon_BST)
> plot("Type_ID", "Gender_ID")

Error in plot.window(...) : need finite 'xlim' values
In addition: Warning messages:
1: In xy.coords(x, y, xlabel, ylabel, log) : NAs introduced by coercion
2: In xy.coords(x, y, xlabel, ylabel, log) : NAs introduced by coercion
3: In min(x) : no non-missing arguments to min; returning Inf
4: In max(x) : no non-missing arguments to max; returning -Inf
5: In min(x) : no non-missing arguments to min; returning Inf
6: In max(x) : no non-missing arguments to max; returning -Inf

Este es mi código, pero pensé que podría haber un problema con mi archivo .csv. He atribuido números al código "Type_ID" y "Gender_ID" columnas. Type_ID tiene valores entre 1 y 20; Gender_ID tiene 1 para hombre, 2 para mujer y 3 para ambos. Debo decir que ambas columnas de ID están formadas únicamente por valores numéricos. Nada más.

Luego intenté usar la función de diagrama de barras. Se produjo este error:

> barplot("Gender_ID", "Type_ID")

Error in width/2 : non-numeric argument to binary operator
In addition: Warning message:
In mean.default(width) : argument is not numeric or logical: returning NA

No faltan valores, ni caracteres dentro de estas columnas, nada que DEBERÍA causar un error según mis conocimientos básicos. Simplemente no estoy seguro de qué está pasando.



------------------------------------

A mí me parece que le estás dando a la función de trama las entradas incorrectas. Para los ejes x e y, el gráfico espera valores numéricos y solo proporciona una única cadena. La función no sabe que el código "Type_ID" y "Gender_ID" provienen del marco de datos Pokemon_BST.

Para acceder a tus datos debes decirle a R de dónde proviene el objeto. Para ello, abra los corchetes detrás del objeto al que desea acceder y escriba los nombres de los objetos a los que se accederá en él.

View(Pokemon_BST)
Pokemon_BST <- read.csv("~/Documents/Pokemon/Pokemon_BST.csv")
# Refer to the object 
plot(Pokemon_BST["Type_ID"], Pokemon_BST["Gender_ID"])

# Sould also work now 
barplot(Pokemon_BST["Gender_ID"], Pokemon_BST["Type_ID"])

Consulte también aquí una introducción sobre los subconjuntos en R

2

Gracias por tu ayuda. Desafortunadamente, esto no parece haber funcionado... La función de trazado genera este error: Error en stripchart.default(x1, ...): método de trazado no válido. La función de diagrama de barras viene con este error: Error en barplot.default(Pokemon_BST["Gender_ID"], Pokemon_BST["Type_ID"]): 'altura' debe ser un vector o una matriz Además: Mensaje de advertencia: En mean.default(ancho): el argumento no es numérico ni lógico: devuelve NA

- fsneden

28/03/2021 a las 16:30

Pokemon_BST["Gender_ID"] es una lista. Queremos un vector para la función de trazado. Un vector sería Pokemon_BST[,"Gender_ID"] El código debería ser: plot(Pokemon_BST[,"Type_ID"], Pokemon_BST[,"Gender_ID"])

- Dan

28/03/2021 a las 17:54



------------------------------------

El problema es cómo estás pasandovalores e a la función de trazado. En el código anterior, "Gender_ID" es solo una cadena y la función de trazado no sabe qué hacer con eso. Una forma de trazar tus valores es pasar los vectores Pokemon_BST$Gender_ID y Pokemon_BST$Type_ID a la función.

Aquí hay un marco de datos de muestra con la trama que deseaba.


Pokemon_BST <- data.frame(
  Type_ID = sample(1:20, 10, replace = TRUE),
  Gender_ID = sample(1:3, 10, replace = TRUE))

plot(Pokemon_BST$Gender_ID, Pokemon_BST$Type_ID)

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare