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