Я хочу создать функцию, которая объединяет данные о продажах по множеству различных переменных.Я сталкиваюсь с препятствием с совокупности (по =).Вот моя функция на данный момент:
func <- function(x, x2, statfunc) {
PT <- c(1,5,3,5,4,8,3,1,5,6,1,5,5,6,1,2,3,1,5,1)
SH <- c(7,7,3,1,1,1,1,4,4,6,6,7,7,1,1,1,3,2,1,3)
SaleRatio <- c(0.85, 0.92, 0.89, 0.88, 0.86, 1.08, 1.15, 1.03, 0.95, 1.01, 1.36, 0.96, 1.03, 0.95, 0.90, 1.01, 0.96, 0.95, 0.81, 1.29)
study <- data.frame(PT, SH, SaleRatio)
study <- select(study, x2, SaleRatio)
study <- aggregate(study,
by = list(x),
FUN = statfunc)
print(study)
}
Когда я пытаюсь запустить формулу с помощью:
func(x = "study$PT", x2 = "PT", statfunc = median)
Я получаю ошибку:
Error in aggregate.data.frame(study, by = list(x), FUN = statfunc) :
arguments must have same length
Яожидая этого:
Group.1 PT SaleRatio
1 1 1 0.990
2 2 2 1.010
3 3 3 0.960
4 4 4 0.860
5 5 5 0.935
6 6 6 0.980
7 8 8 1.080
Приведенные выше результаты получены из точной той же формулы, только путем ручного ввода аргументов вместо того, чтобы позволить функции передавать их.
Этот пользовательпредоставленная функция в конечном итоге будет применена ко многим различным переменным и агрегатным функциям, а также к гораздо большему набору данных.
Может ли кто-нибудь помочь?