que tienen una trama de datos que tiene este aspecto:¿Cómo usar ddply para agregar una columna a un marco de datos?
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
necesito agregar una columna llamada wt
a esta trama de datos que contiene el factor de ponderación necesaria para calcular la media ponderada. Este factor de ponderación tiene que derivarse para cada combinación de site
y date
.
El enfoque que estoy usando es construido por primera vez una función que calcular el factor weigthing:
> weight <- function(dil){
dil/sum(dil)
}
a continuación, aplicar la función para cada combinación de site
y date
> df$wt <- ddply(df,.(date,site),.fun=weight)
pero consigo este mensaje de error:
Error in FUN(X[[1L]], ...) :
only defined on a data frame with all numeric variables
intento 'df = ddply (. Df, (fecha, lugar), transformar, peso = peso (DIL))' – Ramnath
Gracias Ramnath, que funcionó perfectamente – matteo