aggregate - How to add an aggregated variable to an existing dataset in R -


how add variable dataset using aggregate , by commands? example, have:

num x1   1 1   1 0   2 0   2 0  

and i'm looking create variable identify every variable num 1, example:

num x1 x2   1 1 1   1 0 1   2 0 0   2 0 0 

or

num x1 x2   1 1 true   1 0 true   2 0 false   2 0 false  

i've tried use

df$x2 <- aggregate(df$x1, = list(df$num), fun = sum) 

but i'm getting error says replacement has different number of rows data. can help?

this can done grouping 'num' , checking if there any 1 element in 'x'1. ave base r convenient instead of aggregate

df1$x2 <- with(df1, ave(x1==1, num, fun = any)) df1$x2   #[1] 1 1 0 0 

or using dplyr, group 'num' , create 'x2' checking if any 'x1' equal 1. logical vector if not wrapping as.integer convert binary

library(dplyr) df1 %>%    group_by(num) %>%    mutate(x2 = as.integer(any(x1==1))) 

Comments