r - Mutable version of apply? -
i trying average value each subset in dataframe, , incorporate info column.
i can lapply, can't make "stick". there variant of apply family of functions side effects? in plyr library fine too.
data <- data.frame( = sample(letters[1:3], 20, replace=true), b = runif(20), c = letters[1:20]) # split databya <- split(data, factor(data$a)) # average of b per set lapply(databya, function(df) {df$bmean <- mean(df$b)}) # nothing! # remerge subsets data <- rbind.fill(databya) thanks
this may work:
library(plyr) data1<-ddply(data,.(a),transform,bmean=mean(b)) head(data1) b c bmean 1 0.616156407 e 0.5492000 2 0.568187293 g 0.5492000 3 0.899395311 h 0.5492000 4 0.113060973 k 0.5492000 5 b 0.872838203 0.7885643 6 b 0.906216467 b 0.7885643 7 b 0.944196701 n 0.7885643 8 b 0.445983319 o 0.7885643 9 b 0.773586589 t 0.7885643
Comments
Post a Comment