我有两个数据框,第一个包括商品代码,描述和价格(价格省略)和另一个,这两个完全相同,但价格列是一个唯一的列表:
head(currentmonthprice)
LOOKUPLINK ITEMCODE ITEMDESCRIPTION PRICE
1 032105-1 032105 Basic Berry Mix10x400g £x.xx
4 055800-1 055800 Blueberries 8x400g £x.xx
5 055801-1 055801 Raspberries 8x350g £x.xx
6 055802-1 055802 Straw/Blueberries 8x400g £x.xx
7 055803-1 055803 Cherries DS 8x500g £x.xx
8 055804-1 055804 Summer Fruits 8x500g £x.xx
head(currentmonthitemcodes)
ITEMCODE ITEMDESCRIPTION PRICE COUNTOFPRICE
1 032105 Basic Berry Mix10x400g £x.xx ?
2 055800 Blueberries 8x400g £x.xx ?
3 055801 Raspberries 8x350g £x.xx ?
4 055802 Straw/Blueberries 8x400g £x.xx ?
5 055803 Cherries DS 8x500g £x.xx ?
6 055804 Summer Fruits 8x500g £x.xx ?
我想应用产品为特定价格的次数的countif样式函数,并将其作为新列附加到currentmonthitemcodes
数据框。例如,如果三个客户在ITEMCODE 032105
df中为currentmonthprice
支付5.00英镑,则对于该代码,第二个数据框的附加值将为3。有任何想法吗?
非常感谢
答案 0 :(得分:2)
left_join(df2, df1 %>% group_by(ITEMCODE, PRICE) %>% summarise(count = n()))
您可以按照项目代码和价格进行简单的左连接,并计算出现次数。
ITEMCODE ITEMDESCRIPTION PRICE count
1 32105 Basic Berry Mix10x400g £x.xx 1
2 55800 Blueberries 8x400g £x.xx 1
3 55801 Raspberries 8x350g £x.xx 1
4 55802 Straw/Blueberries8x400g £x.xx 1
5 55803 Cherries DS 8x500g £x.xx 1
6 55804 Summer Fruits 8x500g £x.xx 1
这看起来像这样:
{{1}}