楼主: JLOGAN
4980 5

[学习分享] 按条件分组计算 [推广有奖]

  • 3关注
  • 0粉丝

硕士生

16%

还不是VIP/贵宾

-

威望
0
论坛币
24 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2830 点
帖子
87
精华
0
在线时间
97 小时
注册时间
2016-5-28
最后登录
2018-8-4

楼主
JLOGAN 发表于 2016-8-2 16:38:22 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

按条件分组计算


各位,如下一个数据框,想要按照第一列的数据进行分组,然后用第二列的A对应第三列的内容减掉B对应的内容,怎么实现?跪谢!

123

A

65

236

A

69

123

B

6

236

B

16

518

B

23

计算
12365-6
23669-16

二维码

扫码加我 拉你入群

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

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

关键词:数据框 分组 分组计算 按条件分组计算

回帖推荐

cheetahfly 发表于6楼  查看完整内容

感谢大神Hadley Wickham吧,有了他的packages,这些变换都不是事儿。

johnmy 发表于2楼  查看完整内容

如果每组只有两个数就好办:

沙发
johnmy 发表于 2016-8-2 17:56:26
如果每组只有两个数就好办:
  1. library(dplyr)
  2. a<-data.frame(col1=c(123,236,123,236,518),col2=c("A","A","B","B","B"),col3=c(65,69,6,16,23))
  3. a%>%group_by(col1)%>%summarise(diff=max(col3)-min(col3))
复制代码

藤椅
jgchen1966 发表于 2016-8-2 19:23:58
R 中有很不少自成体系的操作数据的packages组合,不妨学习一二。按特定问题学,难应付实际应用中碰到的具体问题。。。如楼上,dplyr 开发团队开发的数据操作方法系统(约有十几个package),相当好用。。学会了,任何数据集结构均可无限制地操作。。

板凳
lxy444 学生认证  发表于 2016-8-2 19:47:15
来学习一下

报纸
JLOGAN 发表于 2016-8-2 20:33:39
谢谢各位,但是实际数据比较复杂,每组数据可能有多个且可能是奇数个,希望大家互相分享学习

地板
cheetahfly 在职认证  发表于 2016-8-2 22:58:33
  1. library(dplyr)
  2. library(tidyr)
  3. a <- data.frame(col1 = c(123, 236, 123, 236, 518), col2 = c("A", "A", "B", "B", "B"), col3 = c(65, 69, 6, 16, 23))
  4. a %>% spread(col2, col3) %>%
  5.   group_by(col1) %>%
  6.   summarise(diff = A - B)
复制代码


感谢大神Hadley Wickham吧,有了他的packages,这些变换都不是事儿。

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

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