Выберите подмножество кадра данных групповыми идентификаторами

Предположим, что у меня есть кадр данных как этот:

df <- data.frame (id = c("a", "b", "a", "c", "e", "d", "e"), n=1:7)

и вектор с идентификаторами как этот:

v <- c("a", "b")

Как я могу выбрать строки кадра данных, которые соответствуют идентификаторам в v? Я не могу использовать идентификационный столбец для rownames, потому что они не уникальны. Когда я пробую это, я добираюсь:

 rownames(df) <- df[["id"]]
Error in `row.names<-.data.frame`(`*tmp*`, value = c(1L, 2L, 1L, 3L, 5L,  : 
  duplicate 'row.names' are not allowed
In addition: Warning message:
non-unique values when setting 'row.names': ‘a’, ‘e’ 
7
задан Jilber Urbina 1 January 2014 в 18:03
поделиться

2 ответа

Это должно делать то, что вы хотите:

ndx = which(df$id %in% v)
df[ndx,]
11
ответ дан 6 December 2019 в 06:49
поделиться

использование

df[df$id %in% v,]
15
ответ дан 6 December 2019 в 06:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: