Como corrigir em r: dim(x) deve ter comprimento positivo


Um erro que você pode encontrar no R é:

 Error in apply(df$var1, 2, mean): dim(X) must have a positive length 

Este erro ocorre quando você tenta usar a função apply() para calcular uma métrica para uma coluna de um quadro de dados ou matriz, enquanto fornece um vetor como argumento em vez de um quadro de dados ou matriz.

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 (points=c(99, 97, 104, 79, 84, 88, 91, 99),
                 rebounds=c(34, 40, 41, 38, 29, 30, 22, 25),
                 blocks=c(12, 8, 8, 7, 8, 11, 6, 7))

#view data frame
df

  points rebound blocks
1 99 34 12
2 97 40 8
3 104 41 8
4 79 38 7
5 84 29 8
6 88 30 11
7 91 22 6
8 99 25 7

Agora suponha que tentamos usar a função apply() para calcular o valor médio na coluna “pontos”:

 #attempt to calculate mean of 'points' column
apply(df$points, 2, mean)

Error in apply(df$points, 2, mean): dim(X) must have a positive length

Ocorre um erro porque a função apply() precisa ser aplicada a um quadro de dados ou matriz, mas neste exemplo estamos tentando aplicá-la a uma coluna específica no quadro de dados.

Como corrigir o erro

A maneira de corrigir esse erro é simplesmente fornecer o nome do quadro de dados para a função apply() da seguinte forma:

 #calculate mean of every column in data frame
apply(df, 2, mean)

  points rebound blocks 
  92,625 32,375 8,375 

Na saída, podemos ver o valor médio de cada coluna no quadro de dados. Por exemplo, o valor médio da coluna “pontos” é 92.625 .

Também podemos usar esta função para encontrar apenas a média de valores específicos no quadro de dados:

 #calculate mean of 'points' and 'blocks' column in data frame
apply(df[c(' points ', ' blocks ')], 2, mean)

point blocks 
92,625 8,375

Finalmente, se quisermos encontrar a média de uma única coluna, podemos usar a função Mean() sem usar a função apply() :

 #calculate mean of 'points' column
mean(df$points)

[1] 92,625

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 *