Фильтрация идентификатора по условию - PullRequest
0 голосов
/ 14 января 2019

Например, у меня есть набор данных с идентификаторами 19878, 19659, 19855, 18658, 18996, 18002

Я хочу отфильтровать идентификаторы по номеру в идентификаторе. Например, я хочу отфильтровать данные по идентификатору, имеющему 9 в позиции номер два идентификатора, то есть 19878, 19659, 19855 и т. Д.

Ответы [ 2 ]

0 голосов
/ 18 января 2019

Я сделал это, выбрав идентификатор, меньший или равный 19000, чтобы отделить идентификаторы с 9-й позицией. xam8 = экзамен [экзамен [, 1] <19000,] ##### выбор из 8 exam9 = экзамен [экзамен [, 1]> 19000,] ##### выбор 9

Но ответы, опубликованные здесь, полезны, если нужны конкретные IDS из целых случайных данных

0 голосов
/ 14 января 2019

попробуйте это:

data <- c(19878, 19659, 19855, 18658, 18996, 18002)

Извлеките свою вторую позицию каждого идентификатора в «data» с помощью substr ():

substr(data,2,2)

[1] "9" "9" "9" "8" "8" "8"

Узнайте с помощью grepl (), какие идентификаторы содержат 9 во 2-й позиции:

grepl(9,substr(data,2,2))

[1]  TRUE  TRUE  TRUE FALSE FALSE FALSE

Скрестите свой результат с вашим объектом данных:

data[grepl(9,substr(data,2,2))]

[1] 19878 19659 19855

Редактировать: Более быстрое решение Грегора (удаление шага grepl):

data[substr(data,2,2) == "9"]
...