Using dcast from package reshape2
Post date: Mar 26, 2014 11:10:59 PM
dcast is from package reshape2
# Example#1 -- unique primary keys
wf_id <- c(1,1,3,4,5,6) seller_id <- c('abc','abc','abc','123','123','123') rule_id <- c('X','Y','X','Z','X','Z') action <- c('Ann','Inv','Inv','Ann','Inv','Inv') df <- data.frame('wf'=wf_id,'seller_id'=seller_id, 'rule_id'=rule_id, 'action'=action) # wf seller_id rule_id action # 1 abc X Ann # 1 abc Y Inv # 3 abc X Inv # 4 123 Z Ann # 5 123 X Inv # 6 123 Z Inv dcast(formula=wf+seller_id ~ rule_id, data=df) # wf seller_id X Y Z # 1 abc Ann Inv <NA> # 3 abc Inv <NA> <NA> # 4 123 <NA> <NA> Ann # 5 123 Inv <NA> <NA> # 6 123 <NA> <NA> Inv
# Example#2 -- duplicated primary keys
wf_id <- c(1,1,1,6,4,6) seller_id <- c('abc','abc','abc','123','123','123') rule_id <- c('X','Y','X','Z','X','Z') action <- c('Ann','Inv','Inv','Ann','Inv','Inv') df <- data.frame('wf'=wf_id,'seller_id'=seller_id, 'rule_id'=rule_id, 'action'=action) # wf seller_id rule_id action # 1 abc X Ann # 1 abc Y Inv # 1 abc X Inv # 6 123 Z Ann # 4 123 X Inv # 6 123 Z Inv dcast(formula=wf+seller_id ~ rule_id, data=df) # Using action as value column: use value.var to override. # Aggregation function missing: defaulting to length # wf seller_id X Y Z # 1 abc 2 1 0 # 4 123 1 0 0 # 6 123 0 0 2
Created by Pretty R at inside-R.org