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.

È stato utile?

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
scroll top