Удаление двойных значений из столбца в R [дубликата]

введите описание изображения здесь

Мне нужно знать, сколько разных товаров производится каждой компанией (ID). Результат должен быть таким:

  • Компания 1 = 4 (A, B, C, D)
  • Компания 2 = 1 (B)
  • Компания 3 = 2 (А, Б)
  • Компания 4 = 2 (А, Б)

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

Благодарность

Всего 1 ответ


Я думаю, что вы можете использовать split() + unique() + nrow() чтобы сделать это, т.е.

cnt <- sapply(split(u<-unique(df),u$ID),nrow)

или просто

cnt <- table(unique(df)$ID) # from comments of @H1

такой, что

> cnt
1 2 3 4 
4 1 2 2

ДАННЫЕ

df <- structure(list(ID = c(1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4), 
    Items = structure(c(1L, 2L, 3L, 4L, 2L, 2L, 2L, 1L, 1L, 2L, 
    1L, 1L, 2L), .Label = c("A", "B", "C", "D"), class = "factor")), class = "data.frame", row.names = c(NA, 
-13L))

Есть идеи?

10000