Извлечение количества уникальных наблюдений с использованием строки - PullRequest
0 голосов
/ 21 октября 2019

У меня есть такой столбец:

data.frame(x = c("ABC1","ABD1","ABE1","ABF1","ABG1","ABC2","ABC2","ABF2","ABE2"))

Я хочу узнать, сколько существует уникальных наблюдений, которые содержат "AB" и букву. Таким образом, ABC1 и ABC2 не уникальны, а ABC1 и ABD1.

В этом примере будет 5 уникальных наблюдений.

Ответы [ 2 ]

1 голос
/ 21 октября 2019

Вы можете выбрать только первые 3 символа для каждого слова. Затем посчитайте количество уникальных вхождений.

df = data.frame(x = c("ABC1","ABD1","ABE1","ABF1","ABG1","ABC2","ABC2","ABF2","ABE2"),stringsAsFactors = FALSE)

length(unique(substr(df$x,1,3)))
5
0 голосов
/ 21 октября 2019

Поскольку уникальность определяет только третий символ, мы удаляем символы на всех других позициях, чтобы увидеть количество уникальных остатков:

length(unique(gsub("[(AB)0-9]","",df$x)))
...