[英]str_detect find a word that starts with a character and end with a character
[英]Is there a version of str_detect to find duplicates?
我有一個包含多個包含標識符的列的數據集,我需要根據標識符識別重復項。 我創建了一個將所有標識符列粘貼在一起的新列,但我不確定如何實際檢測重復項。
當前數據集如下所示:
id <- (1:10)
record <- c("A | B", "A", "--C--", "B", "CD", "D", "ABCD", "B | D | A", "C", "data:D")
df <- data.frame(id, record)
id record
1 A | B
2 A
3 --C--
4 B
5 CD
6 D
7 ABCD
8 B | D | A
9 C
10 data:D
我想根據 A、B、C 和 D 查找重復的行。例如,它應該告訴我 5、6、7、8 和 10 具有匹配項,因為它們都包含 D。
我更喜歡tidyverse
解決方案,並且一直在玩stringr
和dplyr
但沒有運氣。 我不想搜索特定模式,而是查找包含彼此相同字符串的所有行。
id <- (1:10)
record <- c("A | B", "A", "--C--", "B", "CD", "D", "ABCD", "B | D | A", "C", "data:D")
df <- data.frame(id, record)
df$index <- stringr::str_extract_all(df$record, "[A-Z]")
library(dplyr)
library(tidyr)
res = unnest(df) %>% tidyr::spread(index,-id)
> res
# A tibble: 10 x 6
id record A B C D
<int> <fct> <chr> <chr> <chr> <chr>
1 1 A | B A B NA NA
2 2 A A NA NA NA
3 3 --C-- NA NA C NA
4 4 B NA B NA NA
5 5 CD NA NA C D
6 6 D NA NA NA D
7 7 ABCD A B C D
8 8 B | D | A A B NA D
9 9 C NA NA C NA
10 10 data:D NA NA NA D
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.