Remodelando dados com contagem [duplicado]
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.
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