Mam ramki danych, który wygląda tak:Jak użyć polecenia ddply, aby dodać kolumnę do ramki danych?
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
muszę dodać kolumnę o nazwie wt
do tego dataframe który zawiera współczynnik wagowy potrzebne do obliczenia średniej ważonej. Ten współczynnik ważenia należy wyprowadzić dla każdej kombinacji site
i date
.
Podejście używam jest zbudowany funkcję obliczania współczynnika dodatek wyrównawczy:
> weight <- function(dil){
dil/sum(dil)
}
następnie zastosować funkcję dla każdej kombinacji site
i date
> df$wt <- ddply(df,.(date,site),.fun=weight)
ale dostaję ten komunikat o błędzie:
Error in FUN(X[[1L]], ...) :
only defined on a data frame with all numeric variables
spróbować 'df = ddply (. Df (data, miejscu), przekształcać, wt = waga (DIL))' – Ramnath
Thanks Ramnath, że działało idealnie – matteo