2017-03-31 51 views
0

如何在使用filter()後匹配並添加列中的關聯字符串?在過濾器之後向數據框添加匹配標籤()

x<- c("1","2","3","4") 
y<- c("yes","no","maybe","NA") 
df3<-cbind.data.frame(x,y) 
unx<- unique(df3$x) 
x<- c(1:10) 
y<- LETTERS[1:10] 
df4<-cbind.data.frame(x,y) 
all<- df4 %>% filter(x %in% unx) 

要「全部」,我想在y中添加一個包含匹配響應的列。

我不在想什麼,做這件事的最有效方法是什麼?我想將其應用於大型數據集。任何幫助都感激不盡。

謝謝

回答

1
all$response <- df3$y[match(all$x, df3$x)] 
+0

太謝謝你了。那很完美。 –

+0

,請考慮點擊複選標記(和投票),表示您對答案滿意。謝謝。 –

0

dplyr一個left_join()應該做的伎倆。

在上面的問題中,偷偷溜進來的因素和x被投入不同的類型;因此,完整的答案會與options(stringsAsFactors = FALSE)開始你的腳本(除非你選擇採取更好的方法,並開始與tibbles.工作) 然後完整的答案將是如下:

all <- 
    df4 %>% 
    filter(x %in% unx) %>% 
    mutate(x = as.character(x)) %>% 
    left_join(df3, by = "x")