У меня есть кадр данных, который выглядит так:
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
.
Подход, который я использую, состоит в том, чтобы сначала создать функцию, вычисляющую коэффициент weigthing:
> 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