У меня есть фрейм данных, который выглядит следующим образом:
site date var dil
1 A 7.4 2
2 A 6.5 2
1 A 7.3 3
2 A 7.3 3
1 B 7.1 1
2 B 7.7 2
1 B 7.7 3
2 B 7.4 3
Мне нужно добавить столбец с именем wt
к этому фрейму данных, который содержит весовой коэффициент, необходимый для вычисления взвешенного среднего.Этот весовой коэффициент должен быть получен для каждой комбинации site
и date
.
. Подход, который я использую, заключается в том, чтобы сначала построить функцию, которая вычисляет весовой коэффициент:
> weight <- function(dil){
dil/sum(dil)
}
, затем примените функцию для каждой комбинации site
и date
> df$wt <- ddply(df,.(date,site),.fun=weight)
, но я получаю это сообщение об ошибке:
Error in FUN(X[[1L]], ...) :
only defined on a data frame with all numeric variables