楼主: 孙悟充
3667 6

[问答] 请问如何对数据进行多条件分类汇总并返回一个数据集呢 [推广有奖]

  • 0关注
  • 1粉丝

大专生

76%

还不是VIP/贵宾

-

威望
0
论坛币
88 个
通用积分
4.1091
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
701 点
帖子
44
精华
0
在线时间
42 小时
注册时间
2018-3-28
最后登录
2019-5-8

楼主
孙悟充 学生认证  发表于 2018-12-24 14:44:01 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
比如对鸢尾花数据
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2 setosa
2          4.9         3.0          1.4         0.2 setosa
3          4.7         3.2          1.3        0.2  setosa
4          4.6         3.1          1.5         0.2 setosa
5          5.0         3.6          1.4         0.2 setosa
6          5.4         3.9          1.7         0.4 setosa


想同时知道Sepal.Length的最大值,Sepal.Width 的最小值和Petal.Length 的和或者更复杂一点的计算
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:最小值 最大值

沙发
孙悟充 学生认证  发表于 2018-12-24 14:45:54
用aggregate只能对不同列用同样的计算,能实现对不同列用不同计算么

藤椅
孙悟充 学生认证  发表于 2018-12-24 14:51:31
目前只能想到对每列分类统计一下,然后再合并数据集了

# 获取首次使用起始时间、末次使用结束时间和全天使用时间
  temp_start = aggregate(x = dat[,4], by= list(dat[,1], dat[,2]), FUN = min)
  temp_end = aggregate(x = dat[,5], by= list(dat[,1], dat[,2]), FUN = max)
  temp_duration = aggregate(x = dat[,6], by= list(dat[,1], dat[,2]), FUN = sum)
  
  # 整理数据
  names(temp_start) = c("uid", "appid", paste("start_time", chrx, sep = ''))
  names(temp_end) = c("uid", "appid", paste("end_time", chrx, sep = ''))
  names(temp_duration) = c("uid", "appid", paste("duration", chrx, sep = ''))
  
  dat = merge(temp_start, temp_end, by = c("uid", "appid"))
  dat = merge(dat, temp_duration, by = c("uid", "appid"))

板凳
孙悟充 学生认证  发表于 2018-12-24 16:04:04
找到解决方法了
library(plyr)

ddply(iris,.(Species),summarise,sum.a=sum(Sepal.Length),mean.c=(Sepal.Width),sd=ad(Petal.Length))

报纸
johnmy 发表于 2018-12-24 16:57:21
可以用plyr的升级版tidyverse
已有 1 人评分论坛币 收起 理由
jiangbeilu + 5 精彩帖子

总评分: 论坛币 + 5   查看全部评分

地板
孙悟充 学生认证  发表于 2018-12-24 19:12:31
johnmy 发表于 2018-12-24 16:57
可以用plyr的升级版tidyverse
    谢 谢

7
孙悟充 学生认证  发表于 2018-12-24 19:15:09
又一个大神给的方法
library(data.table)

iris_new[,.(mean(Sepal.Length),max(Petal.Length)),by=.(Species, type)]

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 18:45