6
Nel tradizionale plyr
, restituite righe vengono aggiunte automagicamente all'uscita anche se superano il numero di righe di input per tale gruppo:Aggiunta righe in `uscita dplyr`
set.seed(1)
dat <- data.frame(x=runif(10),g=rep(letters[1:5],each=2))
> ddply(dat, .(g), function(df) df[c(1,1,1,2),])
x g
1 0.26550866 a
2 0.26550866 a
3 0.26550866 a
4 0.37212390 a
5 0.57285336 b
6 0.57285336 b
7 0.57285336 b
8 0.90820779 b
9 0.20168193 c
10 0.20168193 c
11 0.20168193 c
12 0.89838968 c
13 0.94467527 d
14 0.94467527 d
15 0.94467527 d
16 0.66079779 d
17 0.62911404 e
18 0.62911404 e
19 0.62911404 e
20 0.06178627 e
non riesco a capire come fare la lo stesso in dplyr
. Alcuni tentativi:
dat %>% group_by(g) %>% summarise(xbar = mean(x))
> dat %>% group_by(g) %>% summarise(xbar = runif(3))
Error: expecting a single value
# Getting creative...
> dat %>% group_by(g) %>% function(x) x[c(1,1,1,2),]
# Nope.
Come si fa?
Il caso d'uso specifico contro cui sto andando a capo è quello di dividere un campo di testo limitato e lo rende "lungo", ma io uso questa funzione di ddply
per molti scopi.
ottengo 'Errore: oggetto di tipo 'chiusura' non è subsettable'. Ma 'do (funzione (d) d [c (1,1,1,2),])%>% taRifx :: stack.list()' funziona .... –
Installa l'ultimo dplyr da github. –
Verificherò più tardi, grazie. Ho installato l'ultima versione rilasciata ma non la versione github. –