我有以下数据框架:
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的行计算:均(目标-出售),我尝试了以下代码:
library(dplyr)
avg_increase <- df %>%
group_by(labels) %>%
summarise(avg_sale_increase = ifelse(target >= 10000,mean(target - sale), 0)) 我得到了以下错误:
错误:期望一个值
由于summarise只返回单个值,是否应该使用deployer::do (或任何其他建议)更改代码以完成任务。
发布于 2016-08-24 13:03:23
问题在于ifelse,如果长度等于输入逻辑,则返回一个向量,因此要根据需要计算平均值。
这应该能行
avg_increase <- df %>%
group_by(labels) %>%
filter(target >= 10000) %>%
summarise(target = mean(target-sale))发布于 2016-08-24 13:02:47
您可以为rows>10000 bevor筛选变量分组。
dat %>% filter(target>10000) %>%
group_by(label) %>% mutate(differ = mean(target-sale))https://stackoverflow.com/questions/39123915
复制相似问题