Como corrigir: erro em stripchart.default(x1,…): método de plotagem inválido


Um erro que você pode encontrar no R é:

 Error in stripchart.default(x1, ...): invalid plotting method 

Este erro normalmente ocorre quando você tenta criar um gráfico de dispersão usando um quadro de dados em vez de um vetor.

Este tutorial explica exatamente como corrigir esse erro.

Como reproduzir o erro

Suponha que temos o seguinte quadro de dados em R:

 #create data frame
df <- data. frame (x=c(1, 2, 2, 4, 7, 8, 9),
                 y=c(5, 5, 8, 10, 13, 13, 18))

#view data frame
df

  xy
1 1 5
2 2 5
3 2 8
4 4 10
5 7 13
6 8 13
7 9 18

Agora suponha que tentamos usar a seguinte sintaxe para criar um gráfico de dispersão:

 #attempt to create scatter plot
plot(df[1], df[2])

Error in stripchart.default(x1, ...): invalid plotting method

Recebemos um erro porque df[1] e df[2] são na verdade quadros de dados e a função plot() aceita apenas vetores como entrada.

Podemos usar a função class() para verificar se df[1] e df[2] são ambos quadros de dados:

 #display class of df[1] and df[2]
class(df[1]);class(df[2])

[1] "data.frame"
[1] "data.frame"

Como corrigir o erro

A maneira de corrigir esse erro é garantir que usemos vetores como entradas para a função plot() .

Por exemplo, podemos usar a seguinte sintaxe para criar um gráfico de dispersão:

 #create scatterplot
plot(df[, 1], df[, 2])

Ou poderíamos usar a seguinte sintaxe para criar um gráfico de dispersão:

 #create scatterplot
plot(df$x, df$y)

Observe que podemos criar um gráfico de dispersão usando qualquer um dos métodos sem erros porque sempre usamos vetores como entradas para a função plot() .

Recursos adicionais

Os tutoriais a seguir explicam como resolver outros erros comuns em R:

Como corrigir em R: os nomes não correspondem aos nomes anteriores
Como corrigir em R: o comprimento de um objeto mais longo não é múltiplo do comprimento de um objeto mais curto
Como corrigir em R: contrastes só podem ser aplicados a fatores com 2 ou mais níveis

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *