Rimodellare i dati con il conteggio [duplicato]
Domanda
Ho un set di dati e voglio rimodellarlo con il pacchetto reshape2 da R, ma ricevo questo errore:
Aggregation function missing: defaulting to length
Questo è il head() dei miei dati:
cat_one customer valor
cama A 1
cama B 1
cama C 1
mesa D 1
mesa A 1
mesa A 1
E voglio rimodellarlo in questo modo, con un conteggio tra entrambe le variabili:
customer cama mesa
A 1 0
B 2 ...
C
D ... ...
Questo è il mio codice:
dcast(dados_teste, cat_one ~ customer, value.var = 'valor')
E sto seguendo quest'altro domanda, ma la stessa soluzione non funziona per me.
Soluzione
Hai confuso il lato sinistro e quello destro della formula.
Tentativo:
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
L'"errore" a cui ti riferisci in realtà è solo a warning
questo ti dice che sta solo contando il numero di valori, senza applicare nessun'altra funzione.Quindi, in questo caso, è perfettamente accettabile.
Se vuoi sbarazzartene specificalo fun.aggregate = length
.
dcast(dados_teste, customer ~ cat_one,
value.var = "valor", fun.aggregate = length)
Se stai cercando solo due colonne, potresti anche guardare 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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow