楼主: hanktian
1131 1

[问答] 菜鸟关于R数据筛选的问题 [推广有奖]

  • 0关注
  • 0粉丝

大专生

33%

还不是VIP/贵宾

-

威望
0
论坛币
23 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1579 点
帖子
14
精华
0
在线时间
58 小时
注册时间
2014-9-29
最后登录
2018-11-15

楼主
hanktian 发表于 2016-2-29 22:53:21 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

请教大神一个关于数据筛选的问题。clpr_allA是A股05年开始所有日线数据,compo_hs300是沪深300的成分股数据。 360截图20160229224929926.jpg

360截图20160229224918773.jpg

####筛选出沪深300日数据(事先加载好clpr_allAcompo_hs300####

compo<-unique(compo_hs300$wind_code)   ##沪深300成分股

for(i in 1:length(compo))

{

   compo<-as.character(paste(substr(compo,8,9),substr(compo,1,6),sep='') )##俩引号中没空格也行

}

clpr_hs300<-data.frame()

for(i in 1:length(compo))

{

   temp<-clpr_allA[which(clpr_allA$InstrumentId==compo),]

   if(nrow(temp)!=0)                ##没有任何行的为退市股票

    {

       temp<-temp[which(temp$DATETIME=="2005-12-30"):length(temp$DATETIME),]  ##选取2006年至2015年的数据

       clpr_hs300<-rbind(clpr_hs300,temp[which(temp$CLOSE!='NaN'),])  ##去除没有上市的缺省数据

    }

}


这段代码是别人给我的,不太明白其DATETIME的筛选原理。which(clpr_allA$DATETIME=="2005-12-30",返回了所有满足DATETIME=="2005-12-30"的行的序号,length(clpr_allA $DATETIME)返回了总行数,但这不成一对多了?一般说给定data frame A, int n,m(n<m) 则A[n:m,]返回了n到m行的数据,clpr_allA[which(clpr_allA$DATETIME=="2005-12-30"):length(clpr_allA $DATETIME),]是啥情况?直接运行就卡死了


二维码

扫码加我 拉你入群

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

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

关键词:数据筛选 沪深300 HS300 comp 日线数据 成分股 沪深

沙发
jiangbeilu 学生认证  发表于 2016-3-1 10:19:24
which(..=="2005-12-30")是返回行号,然后用行号来对data.frame进行选取数据,没有问题的。

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

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