Мне нужно знать, сколько разных товаров производится каждой компанией (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))