如何将此sql转换为dplyr
我要执行与此SQL代码等效的操作:如何将此sql转换为dplyr,r,dplyr,R,Dplyr,我要执行与此SQL代码等效的操作: SELECT Cat_1, Cat_2, Cat_3, Sum(cost), Sum(quantity) FROM tbl_of_data GROUP BY Cat_1, Cat_2, Cat_3; 如何使用R中的dplyr包实现这一点 我试过: library(dplyr) tbl_of_data %>% group_by(Cat_1, Cat_2, Cat_3) %>% mutate(cost, quantity) 但是我得到的行数
SELECT Cat_1, Cat_2, Cat_3, Sum(cost), Sum(quantity) FROM tbl_of_data
GROUP BY Cat_1, Cat_2, Cat_3;
如何使用R中的dplyr包实现这一点
我试过:
library(dplyr)
tbl_of_data %>%
group_by(Cat_1, Cat_2, Cat_3) %>%
mutate(cost, quantity)
但是我得到的行数是相同的。我们需要
summary
或summary\u each
为每个组组合获得一行sum
,这相当于sql
输出
tbl_of_data %>%
group_by(Cat_1, Cat_2, Cat_3) %>%
summarise_each(funs(sum), cost, quantity)
或
mutate
创建一个新列。此外,在OP的mutate
code中,它没有使用sum
进行包装。如果打算创建新的sum
列,则可以使用mutate
或mutate\u each
,即..%>%mutate(SumCost=sum(cost),SumQuantity=sum(quantity))
或..%>%mutate\u each(funs(sum),cost,quantity)
我们需要summary
或summary\u each
为每个组组合获得一行sum
,这相当于sql
输出
tbl_of_data %>%
group_by(Cat_1, Cat_2, Cat_3) %>%
summarise_each(funs(sum), cost, quantity)
或
mutate
创建一个新列。此外,在OP的mutate
code中,它没有使用sum
进行包装。如果打算创建新的sum
列,则可以使用mutate
或mutate\u每个
,即…%>%mutate(SumCost=sum(cost),SumQuantity=sum(quantity))
或…%>%mutate\u每个(funs(sum),cost,quantity)
。我只是看到其他地方使用了mutate,并尝试进行反向工程。谢谢:D@KillerSnail没问题。很高兴帮助你。我只是看到其他地方使用了mutate,并尝试进行反向工程。谢谢:D@KillerSnail没问题。很高兴帮助你。