2017-02-08 28 views
-3

匹配數據框列字符串矢量我有一個像下面如何在r中

a = "ASDRT" "GTYHE" "AQWER" QWERT" 

列向量和我有類似以下

 ID.   Amount 

    SDFGH.  45 
    ASDRT.  67 
    AQWER.  88 
    TYUIIO.  543 
    QWERT.  32 

一個數據幀我想匹配矢量值與數據幀的ID列,如果匹配,則將打印1個其他0

所需輸出

 ID.   Amount.  Match 
    SDFGH.  45.    0 
    ASDRT.  67.    1 
    AQWER.  88.    1 
    TYUIIO.  543.    0 
    QWERT.  32.    1 

我該如何在R中做到這一點?

+5

'as.integer stri_detect(grepl(paste0(一,塌陷= 「|」 ),df $ ID))'' –

回答

0

我們可以在與sub末去除.,使用%in%得到一個邏輯vector,它as.integer強制爲二進制創建「匹配」列

df1$Match <- as.integer(sub("\\.$", "", df1$ID) %in% a) 
df1$Match 
#[1] 0 1 1 0 1 

或者其他有效的選擇是從stringi

library(stringi) 
as.integer(stri_detect_regex(df1$ID, paste(a, collapse="|")))