#r #dplyr
#r #dplyr
Вопрос:
Есть ли способ использовать функцию фильтрации внутри summarise, например:
#I have a dataset with 5 columns Price, Type, Amount USD, date
# I only want the mean price of the rows that are not Type == "SELL"
data = summarise(Price = filter(!Type == "SELL") %>% mean(Price), Amount = sum(Amount), USD = sum(USD), date = min(date))
Ответ №1:
Вы можете использовать :
library(dplyr)
data %>%
summarise(Price = mean(Price[Type != 'SELL']),
Amount = sum(Amount),
USD = sum(USD),
date = min(date))
Чтобы использовать его в каналах :
data %>%
summarise(Price = mean(data %>% filter(Type != 'SELL') %>% pull(Price)),
Amount = sum(Amount),
USD = sum(USD),
date = min(date))
Комментарии:
1. спасибо, так что просто чтобы убедиться, что невозможно использовать каналы внутри функции summarise?
2. Это так, но я нахожу это очень запутанным для этой задачи. Смотрите обновленный ответ.