merge - match vector against dataframe with multiple entries in R -


i have following 2 dataframes:

>df1<-data.frame(id=c(111,222,333,444))    id 1 111 2 222 3 333 4 444  >df2<-data.frame(id=c(111,111,111,222,333,333,444,444,444,444,444,444),code=c(1,1,2,3,2,3,4,5,2,3,4,5))     id code 1  111    1 2  111    1 3  111    2 4  222    3 5  333    2 6  333    3 7  444    4 8  444    5 9  444    2 10 444    3 11 444    4 12 444    5 

and match id elements in df1 against id elements in df2, produce third dataframe looks this:

> df3<-data.frame(id=c(111,222,333,444),code1=c(1,3,2,4),code2=c(1,na,3,5),code3=c(2,na,na,2),code4=c(na,na,na,3),code5=c(na,na,na,4),code6=c(na,na,na,5))    id code1 code2 code3 code4 code5 code6 1 111     1     1     2    na    na    na 2 222     3    na    na    na    na    na 3 333     2     3    na    na    na    na 4 444     4     5     2     3     4     5 

note df2 contains multiple codes several of id elements in df1. df3 reflect including column each of codes associated id elements.

thank in advance , suggestions.

this "long-to-wide" reshape problem, don't have "time" variable. can use ave plus seq_along create one, this:

df2$time <- ave(df2$id, df2$id, fun = seq_along) df2 #     id code time # 1  111    1    1 # 2  111    1    2 # 3  111    2    3 # 4  222    3    1 # 5  333    2    1 # 6  333    3    2 # 7  444    4    1 # 8  444    5    2 # 9  444    2    3 # 10 444    3    4 # 11 444    4    5 # 12 444    5    6 

now, can use either base r's reshape....

reshape(df2, direction = "wide", idvar = "id", timevar = "time") #    id code.1 code.2 code.3 code.4 code.5 code.6 # 1 111      1      1      2     na     na     na # 4 222      3     na     na     na     na     na # 5 333      2      3     na     na     na     na # 7 444      4      5      2      3      4      5 

... or dcast "reshape2"

library(reshape2) dcast(df2, id ~ time, value.var="code") #    id 1  2  3  4  5  6 # 1 111 1  1  2 na na na # 2 222 3 na na na na na # 3 333 2  3 na na na na # 4 444 4  5  2  3  4  5 

Comments

Popular posts from this blog

How to mention the localhost in android -

php - Calling a template part from a post -