У меня есть следующий кадр данных:как преобразовать dplyr :: резюме в dplyr :: сделать
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))
и я получаю следующее сообщение об ошибке:
Error: expecting a single value
в summarise
возвращает только одно значение, должен ли я изменить свой код, используя deployer::do
(или любое другое предложение) для выполнения задачи.
Вы думали о выполнении: 'ф.р.%>% group_by (метки, цель> = 1000)%>% реферирования (avg_sale_increase = средняя (цель - продажа))' , Это не ответит на ваш вопрос напрямую, но он предоставит вам 2 строки для каждой метки: увеличение продажи avg для целей более 10K и среднее увеличение продаж для целей ниже 10K. Также рассмотрите возможность использования относительной ошибки вместо абсолютной ошибки, что полезно для сравнения увеличения продаж для широкого круга целей. При относительных ошибках, вероятно, меньше необходимости фильтровать цели. –