首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将dplyr::汇总转换为dplyr::do

如何将dplyr::汇总转换为dplyr::do
EN

Stack Overflow用户
提问于 2016-08-24 12:54:01
回答 2查看 67关注 0票数 0

我有以下数据框架:

代码语言:javascript
复制
 label  target    sale
   low    5000    4000
   low   11000    9000
   low    5500    4500
   low   12000    9500
middle   20000   18000
middle   22000  190000
  high  100000   90000
  high  120000   95000

我需要首先按照标签对我的数据帧进行分组,然后只对目标大于10000的行计算:均(目标-出售),我尝试了以下代码:

代码语言:javascript
复制
library(dplyr)
avg_increase <- df %>% 
                  group_by(labels) %>%
                  summarise(avg_sale_increase = ifelse(target >= 10000,mean(target - sale), 0))  

我得到了以下错误:

错误:期望一个值

由于summarise只返回单个值,是否应该使用deployer::do (或任何其他建议)更改代码以完成任务。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-24 13:03:23

问题在于ifelse,如果长度等于输入逻辑,则返回一个向量,因此要根据需要计算平均值。

这应该能行

代码语言:javascript
复制
avg_increase <- df %>% 
                group_by(labels) %>% 
                filter(target >= 10000) %>% 
                summarise(target = mean(target-sale))
票数 4
EN

Stack Overflow用户

发布于 2016-08-24 13:02:47

您可以为rows>10000 bevor筛选变量分组。

代码语言:javascript
复制
dat %>% filter(target>10000) %>% 
    group_by(label) %>% mutate(differ = mean(target-sale))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39123915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档