我有兩個DF中的R(甲基=一些冗餘信息)具有多個正則表達式dplyr過濾柱
DF1:
id value1 value2 value3 value4
id1_meta_meta-meta 4.93 13.93 16.8 35.39
id2_meta_meta-meta 28.63 45.43 30.52 61.71
id3_meta_meta-meta 3.35 1.26 7.98 4.43
id4_meta_meta-meta 16.78 50.47 32.48 55.52
id5_meta_meta-meta 474.23 807.71 664.45 442.55
id6_meta_meta-meta 26.26 32.83 24.64 41.58
id7_meta_meta-meta 230.1 202.93 166.71 295.48
id8_meta_meta-meta 651.21 1282.71 1012.28 2650.21
DF2:
V1
id1
id2
id3
id4
id5
問題
嘗試根據df2中的ID篩選df1中的行
代碼
library(dplyr)
library(stringr)
df.common = df1 %>%
filter(str_detect(id, '*_') %in% df2$V1)
錯誤
Error in filter_impl(.data, quo) :
Evaluation error: Syntax error in regexp pattern. (U_REGEX_RULE_SYNTAX).
所需的輸出
df.common:
id value1 value2 value3 value4
id1_meta_meta-meta 4.93 13.93 16.8 35.39
id2_meta_meta-meta 28.63 45.43 30.52 61.71
id3_meta_meta-meta 3.35 1.26 7.98 4.43
id4_meta_meta-meta 16.78 50.47 32.48 55.52
id5_meta_meta-meta 474.23 807.71 664.45 442.55
如果你改變了'filter'條件'過濾器(str_detect(ID,DF2 $ V1))您的原始代碼將工作' –
@JakeKaupp我得到這個錯誤'警告消息: 在stri_detect_regex(字符串,模式,opts_regex = opts(pattern)): 較長的對象長度不是較短的對象長度的倍數 – sbradbio
這是一個警告,而不是一個錯誤,並導致您所需的輸出。 –