全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2149 7
2010-03-09
有很多个公司的数据,每个公司的时间序列长度不一样。
如果这个公司的时间序列长度小于20就删除这个公司的所有观测(也就不把这个公司作为样本)

研究了很多方法,都不行。

请教大牛!怎么操作呢?

谢谢了!
二维码

扫码加我 拉你入群

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

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

全部回复
2010-3-9 15:47:57
按照这个公司,用SQL按照时间序列统计,看看是否是小于20 然后就delete
二维码

扫码加我 拉你入群

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

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

2010-3-9 15:53:47
crackman 发表于 2010-3-9 15:47
按照这个公司,用SQL按照时间序列统计,看看是否是小于20 然后就delete
你是说要一个一个公司来? 主要是有非常多的公司,输入一个个公司的名字不大现实。
数据很大
二维码

扫码加我 拉你入群

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

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

2010-3-9 15:58:09
或者有办法能删除公司名字出现次数少于20次的,应该也可以。
就是不知道怎么操作
二维码

扫码加我 拉你入群

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

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

2010-3-9 17:21:33
这个是删除公司出现次数小于2的,看一下:)


data x;
input company$ time;
cards;
001 2
002 4
002 5
002 8
;run;
proc sql;
select * from x  group by company having  count(company)>2;quit;
二维码

扫码加我 拉你入群

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

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

2010-3-9 18:58:14
proc sort data=your_data;
by companies;
proc means data = your_data noprint;
output out=after_deletion(drop = _type_ _freq_ where=(Num_of_price>=20)
             n(stock_series) =Num_of_prices;
by your_companies;
run;

The data of "after_deletion" contains the company names having number of observations >=20.

Then merge your original data with the data of "after_deletion";  The final output will only contain the available companies in "after_deletion".

data final;
   merge your_data(in = yours)
               after_deletion( in = after);
if yours and after;
by your_companies;
run;
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群