【问题标题】:Removing double values from a column in R [duplicate]从R中的列中删除双精度值[重复]
【发布时间】:2025-12-22 04:20:13
【问题描述】:

我需要知道每家公司 (ID) 生产了多少不同的商品。 结果应该是这样的:

  • 公司 1 = 4(A、B、C、D)
  • 公司 2 = 1 (B)
  • 公司 3 = 2 (A,B)
  • 公司 4 = 2 (A,B)

我应该使用哪个代码到达那里?我想它应该可以让我计算每个 ID 的唯一值。

谢谢

【问题讨论】:

  • 一种方法是:count(df, ID, Items)
  • 是的,它运行良好。谢谢

标签: r dataframe count unique rows


【解决方案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))

【讨论】: