根据多个列计算不重复

时间:2019-11-18 12:41:52

标签: r dplyr

我有一个数据集,如下所示:

product_list <- tribble(
  ~shop_name, ~product_id, ~category,
  "A",         1,          "Game",
  "B",         2,          "Book",         
  "C",         3,          "Electronic",
  "A",         4,          "Home", 
  "A",         5,          "Game",
  "B",         3,          "Electronic",
  "C",         8,          "Home",
  "A",         6,          "Book",
  "A",         7,          "Game",
  "B",         7,          "Game",
)

但是现在我想添加一个新列,向我们显示每个商店的类别数量,并希望保留所有其他列。这是预期的结果:

desired_list <- tribble(
  ~shop_name, ~product_id, ~category,        ~number_of_category
  "A",         1,          "Game",            3, 
  "B",         2,          "Book",            1,
  "C",         3,          "Electronic",      1,
  "A",         4,          "Home",            1,
  "A",         5,          "Game",            3,
  "B",         3,          "Electronic",      1,
  "C",         8,          "Home",            1,
  "A",         6,          "Book",            1,
  "A",         7,          "Game",            3,
  "B",         7,          "Game",            1,
)

有人可以帮我得到结果吗?

先谢谢了。

1 个答案:

答案 0 :(得分:1)

您可以使用add_count函数添加计数,与count不同的是,该函数不会删除其他列:

product_list %>% add_count(shop_name, category, name = "number_of_category")