r - dplyr: put count occurences into new variable -
r - dplyr: put count occurences into new variable -
would hand on dplyr code, cannot figure out. have seen similar issue described here many variables (summarizing counts of factor dplyr , putting rowwise counts of value occurences new variables, how in r dplyr?), task smaller. given info frame, how count frequency of variable , place in new variable.
set.seed(9) df <- data.frame( group=c(rep(1,5), rep(2,5)), var1=round(runif(10,1,3),0))
then have:
>df grouping var1 1 1 1 2 1 1 3 1 1 4 1 1 5 1 2 6 2 1 7 2 2 8 2 2 9 2 2 10 2 3
would 3rd column indicating per-group (group
) how many times var1
occurs, in illustration be: count=(4,4,4,4,1,1,3,3,3,1). tried - without success - things like:
df %>% group_by(group) %>% rowwise() %>% do(count = nrow(.$var1))
explanations appreciated!
all need grouping info both columns, "group" , "var1":
df %>% group_by(group, var1) %>% mutate(count = n()) #source: local info frame [10 x 3] #groups: group, var1 # # grouping var1 count #1 1 1 4 #2 1 1 4 #3 1 1 4 #4 1 1 4 #5 1 2 1 #6 2 1 1 #7 2 2 3 #8 2 2 3 #9 2 2 3 #10 2 3 1
edit after comment here's illustration of how should not it:
df %>% group_by(group, var1) %>% do(data.frame(., count = length(.$group)))
the dplyr implementation n()
sure much faster, cleaner , shorter , should preferred on such implementations above.
r dplyr
Comments
Post a Comment