【发布时间】:2021-05-30 15:08:23
【问题描述】:
我有一个数据框和一组关键字。我想在数据框中创建一个与关键字中的任何字符串匹配的新列,以及与不匹配字符串的第二个数据框。
关键字
我的数据框
| colour | id |
|---|---|
| blue | A234 |
| blue,black | A5 |
| yellow | A6 |
| blue,green,purple | A7 |
我希望得到的是这样的数据框:
| colour | id | match | non-match |
|---|---|---|---|
| blue | A234 | blue | yellow,red,green,purple |
| blue,green | A5 | blue,green | yellow,red,purple |
| yellow | A6 | yellow | blue,red,green,purple |
| blue,green,purple | A7 | blue,green,purple | yellow,red |
我试过这个来获取匹配列:
df %>% mutate(match = str_extract(paste(keyword,collapse="|"), tolower(colour)))
但它只适用于第一和第三行,而不是第二和第四行。感谢您对此的任何帮助,并获得一列不匹配的字符串。
【问题讨论】:
-
第 2 行是蓝色,输入数据中的黑色变为蓝色,输出中的绿色。