Pergunta

Eu tenho um conjunto de dados e quero remodelá-lo com o pacote reshape2 do R, mas estou recebendo este erro:

Aggregation function missing: defaulting to length

Este é o head() dos meus dados:

cat_one customer valor
cama        A     1
cama        B     1
cama        C     1
mesa        D     1
mesa        A     1
mesa        A     1

E quero reformular assim, com uma contagem entre as duas variáveis:

customer     cama    mesa
A             1       0
B             2      ...
C
D            ...     ...

Este é o meu código:

dcast(dados_teste, cat_one ~ customer, value.var = 'valor')

E estou seguindo esse outro pergunta, mas a mesma solução não está funcionando para mim.

Foi útil?

Solução

Você confundiu o LHS e o RHS da fórmula.

Tentar:

library(reshape2)
dcast(dados_teste, customer ~ cat_one, value.var = "valor")
# Aggregation function missing: defaulting to length
#   customer cama mesa
# 1        A    1    2
# 2        B    1    0
# 3        C    1    0
# 4        D    0    1

O "erro" a que você se refere é na verdade apenas um warning isso indica que está apenas contando o número de valores - sem aplicar nenhuma outra função.Então, neste caso, é perfeitamente aceitável.

Se você quiser se livrar dele, especifique fun.aggregate = length.

dcast(dados_teste, customer ~ cat_one, 
      value.var = "valor", fun.aggregate = length)

Se for apenas contar duas colunas que você procura, você também pode olhar table:

as.data.frame.matrix(table(dados_teste[c(2, 1)]))
#   cama mesa
# A    1    2
# B    1    0
# C    1    0
# D    0    1
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top