楼主: 中秋宝
1302 2

[问答] R语言把重复字段分组统计 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

40%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
30 点
帖子
1
精华
0
在线时间
0 小时
注册时间
2017-1-18
最后登录
2017-1-18

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如图,想要把userID一列按1,2,3,4的形式存储,然后date一列只保存每一个用户最后一个日期与该用户第一个日期的差值,如右图的形式,请问这个怎么做?
搜狗截图17年01月18日1025_1.png 2.png

二维码

扫码加我 拉你入群

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

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

关键词:R语言 UserID 最后一个 User seri 统计

沙发
whoim 发表于 2017-1-18 11:14:05 |只看作者 |坛友微信交流群
刚好发了个类似的问题,用我那个思路应该可以做出来,但是看起来方法有点蠢,看别人有没有更好的办法吧
  1. library(plyr)
  2. df[,'date']<-as.Date(df[,'date'])
  3. df<-split(df,df$userID)
  4. date1<-lapply(df,function(date) tail(date,1))
  5. date2<-lapply(df,function(date) head(date,1))
  6. date1<-ldply(date1)
  7. date2<-ldply(date2)
  8. diff<-as.numeric(date1[,3]-date2[,3])
复制代码
diff就是你要的差值,然后随便与date1,date2中的一个合并,再去掉那些不要的列就行了


使用道具

藤椅
zl66983279 在职认证  发表于 2017-1-18 14:38:48 |只看作者 |坛友微信交流群
  1. library(dplyr)
  2. data<- data.frame(userid=c(1,1,1,1,2,2,2),date=as.Date(c("2013/1/13","2013/2/14","2013/1/25","2013/1/16","2013/4/17","2013/1/28","2013/1/11")))
  3. result<- data %>% group_by(userid) %>% summarise(date=max(date)-min(date))
复制代码
如果只要数字
可以把最后一个改成
  1. result<- data %>% group_by(userid) %>% summarise(date= as.numeric(max(date)-min(date)))
复制代码



使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-7 23:53