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)