• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

R语言学习笔记(二十四):plyr包的用法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

plyr 这个包,提供了一组规范的数据结构转换形式。

Input/Output list data frame array
list        |	llply()	| ldply()     |	laply()

data frame | dlply() | ddply() | daply()
array | alply() | adply() | aaply()

一个简单的例子

  • 普通做法
iris.set <- iris[iris$Species == "setosa", -5]
iris.versi <- iris[iris$Species == "versicolor", -5]
iris.virg <- iris[iris$Species == "virginica", -5]
## Apply
mean.set <- colMeans(iris.set)
mean.versi <- colMeans(iris.versi)
mean.virg <- colMeans(iris.virg)
## Combine
mean.iris <- rbind(mean.set, mean.versi, mean.virg)
rownames(mean.iris) <- c("setosa", "versicolor", "virginica")
mean.iris
           Sepal.Length Sepal.Width Petal.Length Petal.Width
setosa            5.006       3.428        1.462       0.246
versicolor        5.936       2.770        4.260       1.326
virginica         6.588       2.974        5.552       2.026
  • plyr
library(plyr)
ddply(iris, .variables = "Species", .fun = function(df_sub){
    colMeans(df_sub[, -5])
})
     Species Sepal.Length Sepal.Width Petal.Length Petal.Width
1     setosa        5.006       3.428        1.462       0.246
2 versicolor        5.936       2.770        4.260       1.326
3  virginica        6.588       2.974        5.552       2.026
ddply(iris, .variables = "Species", .fun = function(df_sub) {
    model <- lm(Petal.Width ~ Petal.Length, data = df_sub)
    return(c(model$coefficients, R2 = summary(model)$r.squared))
})
     Species (Intercept) Petal.Length        R2
1     setosa -0.04822033    0.2012451 0.1099785
2 versicolor -0.08428835    0.3310536 0.6188467
3  virginica  1.13603130    0.1602970 0.1037537

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap