2017-02-15 4 views
0

Wie ersetzt man Elemente eines Vektors durch Elemente eines Vektors, die durch ein anderes Element in R passen?Wie ersetzt man Elemente eines Vektors durch Elemente eines Vektors, die durch ein anderes Element in R passen?

ich habe:

a <- c(1,2,3,4,5,6) 
b <- c('x','w','e','c','t','z') 

c <- c(2,3,5) 
d <- c('xx','vf','z') 

df1 <- data.frame(a,b) 
df2 <- data.frame(c,d) 

ich df2 so aussehen wollen:

a b 
1 x 
2 xx 
3 vf 
4 c 
5 z 
6 z 

Ich habe bisher versucht zu fusionieren/join them von "a" so habe ich:

a b b 
1 x NA 
2 w xx 
3 e vf 
4 c NA 
5 t z 
6 z NA 

Vielen Dank für Ihre Hilfe

+0

'df1 $ b = as.character (df1 $ b); df1 $ b [which (Übereinstimmung (df1 $ a, df2 $ c)> 0)] = as.zeichen (df2 $ d [welche (Übereinstimmung (df2 $ c, df1 $ a)> 0)]) ' –

Antwort

1

Wit h dplyr:

full_join(df1, df2, by = c('a' = 'c')) %>% 
    transmute(a, b = ifelse(is.na(d), b, d)) -> result 
Verwandte Themen