楼主: cherishlife123
10346 8

[问答] 请问大神:怎么用R把表中的每个月最后一个数据提取出来呢? [推广有奖]

  • 11关注
  • 2粉丝

已卖:34份资源

讲师

73%

还不是VIP/贵宾

-

威望
0
论坛币
1465 个
通用积分
0.4924
学术水平
4 点
热心指数
11 点
信用等级
3 点
经验
19678 点
帖子
307
精华
0
在线时间
748 小时
注册时间
2011-3-9
最后登录
2025-8-10

楼主
cherishlife123 学生认证  发表于 2014-7-22 09:34:23 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
怎么用R把表中的每个月最后一个数据提取出来呢?谢谢
二维码

扫码加我 拉你入群

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

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

关键词:数据提取 最后一个

回帖推荐

童小军 发表于6楼  查看完整内容

沙发
童小军 发表于 2014-7-22 10:14:27
分类汇总,按年和月分类,day最大的取那个
aggregate(Data,by=list('year','month'),max(day))

藤椅
cherishlife123 学生认证  发表于 2014-7-22 11:31:28
谢谢!这是我的数据格式图片,你看需要怎么在你的程序上修改呢

QQ图片20140722112946.jpg (152.33 KB)

QQ图片20140722112946.jpg

板凳
cherishlife123 学生认证  发表于 2014-7-22 16:01:37
> aggregate(a,by=list('year','month'),max(day))
错误于match.fun(FUN) : 找不到对象'day'
> aggregate(a,by=list('year','month'),max("day"))
错误于get(as.character(FUN), mode = "function", envir = envir) :
  没有状态为"function"的"day"目标对象

报纸
童小军 发表于 2014-7-22 19:40:52
假设你的TrdDt是Date,转换成年月日 ,数据是D1

  library(lubridate)
D1$Date<- ymd(D1$Date)
  D1$year<-year(D1$Date)
  D1$day<-day(D1$Date)
  D1$month<-month(D1$Date)

好像不是分类汇总,你自己看下,先把年月选出来,在选day最大的那个记录。

地板
童小军 发表于 2014-7-23 08:16:59
  1. M1<-read.csv("公司债券日行情数据(20071012-20121231)-国泰安(净价形式)调整1.csv") #读取文件《公司债券日行情数据(20071012-20121231)-resset调整1.csv》
  2. M1$Date1<- as.Date(M1$Date,"%Y/%m/%d") #将日期转化为R能识别的日期,形成新变量Date1
  3. M1$year<-format(M1$Date1, format="%Y")   #提取年
  4. M1$month<-format(M1$Date1, format="%m")   #提取月
  5. M1$day<-format(M1$Date1, format="%d")     #提取日  
  6.    
  7. temp1<-M1[order(M1$Bdcd,M1$Date1),]#先按证券代码排序,再按时间排序
  8. temp2<-aggregate(temp1$Date1,by=list(temp1$Bdcd,temp1$year,
  9.       temp1$month),FUN=max)#提取每月最后一天的日期
  10. temp3<-data.frame(Bdcd=temp2$Group.1,Date1=temp2$x)#将temp2中Bdcd和Date1保
  11.                                                      # 存到temp3
  12. temp4<-merge(temp1,temp3,by=c("Bdcd","Date1"))#以Bdcd和Date1为关键变量合并temp1和
  13.                                                #temp3,最终得到每月的数据
  14. write.csv(temp4, file = "公司债券月末数据.csv", row.names = F)
复制代码

7
童小军 发表于 2014-7-23 08:18:05
这是我自己以前写过的一个程序,比较繁琐,但是结果还是得到了!

8
jacky陈2183 在职认证  学生认证  发表于 2014-7-29 13:46:20
多谢,学习了。

9
拼命向前跑 发表于 2017-11-29 10:24:13
童小军 发表于 2014-7-23 08:18
这是我自己以前写过的一个程序,比较繁琐,但是结果还是得到了!
你这个代码为什么感觉不太对啊,我按你这个写的,运行不了

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

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