想dataframe中对一个分组变量(因子或类似变量),应用一个种计算并且把返回值存在一个dataframe中吗?ddply(plyr) 能帮你实现。另外,plyr包中还有各种有用的funtion。
几个例子:
ddply(baseball, .(year), "nrow")
ddply(baseball, .(lg), c("nrow", "ncol"))
mean_rbi <- function(df) mean(df$rbi, na.rm=TRUE)
rbi <- ddply(baseball, .(year), mean_rbi)
with(rbi, plot(year, V1, type="l"))
rbi <- ddply(baseball, .(year), "mean_rbi")
mean_rbi <- function(rbi, ...) mean(rbi, na.rm=TRUE)
rbi <- ddply(baseball, .(year), splat(mean_rbi))
ddply(baseball, .(year), numcolwise(mean), na.rm=TRUE)
base2 <- ddply(baseball, .(id), function(df) {
transform(df, career_year = year - min(year) + 1)
})
https://m.sciencenet.cn/blog-352360-345958.html
上一篇:
记着用 lapply(base)下一篇:
R中如何把一个大的dataframe划分成小的dataframe