我有一个包含以下列的数据框
供应商 | 产品 | 价格 |
---|---|---|
101 | 1001 | 1.50 |
101 | 1001 | 1.50 |
101 | 1001 | 1.80 |
102 | 1001 | 2.10 |
102 | 1001 | 2.10 |
101 | 1002 | 10.10 |
101 | 1002 | 10.10 |
101 | 1002 | 10.10 |
103 | 1002 | 10.10 |
104 | 1002 | 20.10 |
104 | 1002 | 20.10 |
104 | 1002 | 10.10 |
我需要计算每个供应商的每种产品的每个价格出现的次数,并创建一个新的数据框 df2,如下所示:
产品 | 供应商 | 价格 | 价格计数 |
---|---|---|---|
1001 | 101 | 1.5 | 2 |
1001 | 101 | 1.8 | 1 |
1001 | 102 | 2.1 | 2 |
1002 | 101 | 10.10 | 3 |
1002 | 103 | 10.10 | 1 |
1002 | 104 | 10.10 | 1 |
1002 | 104 | 20.10 | 2 |
我是 R 编程新手,到目前为止我尝试的一切都不起作用。任何帮助将不胜感激
可能是重复的问题
library(dplyr)
df %>%
count(Product, Vendor, Price, name = "Count")
# A tibble: 7 × 4
Product Vendor Price Count
<dbl> <dbl> <dbl> <int>
1 1001 101 1.5 2
2 1001 101 1.8 1
3 1001 102 2.1 2
4 1002 101 10.1 3
5 1002 103 10.1 1
6 1002 104 10.1 1
7 1002 104 20.1 2
生成虚假数据:
vendor <- sample(x = 1:5,size = 100,replace = TRUE)+100
product <- sample(x = 1:8,size = 100,replace = TRUE)+1000
price <- (product-1000) + sample(x = -8:8,size = 100,replace = TRUE)/10
df <- data.frame(vendor,product,price)
使用 dplyr 的解决方案:
library(dplyr)
df %>% group_by(vendor,product,price) %>% count