楼主: liuliuqiu
1810 5

[问答] SAS程序请教 [推广有奖]

  • 6关注
  • 2粉丝

已卖:35份资源

副教授

64%

还不是VIP/贵宾

-

威望
0
论坛币
2239 个
通用积分
8.1161
学术水平
3 点
热心指数
5 点
信用等级
5 点
经验
14393 点
帖子
429
精华
0
在线时间
1129 小时
注册时间
2009-3-24
最后登录
2025-12-11

楼主
liuliuqiu 发表于 2014-4-11 11:57:23 |AI写论文
5论坛币
请教:
     文件a,含有变量 product(产品种类) year(年份) company(企业) value(产值);
product(产品种类) year(年份) company(企业) value(产值)
   1                              2000                  aa                      123
   1                              2000                  bb                      456
   1                              2000                  cc                       857
   1                              2001                  aa                       878
   1                              2001                   dd                      787
  1                               2002                   aa                       578
2                                 2000                 dd                       578
2                                  2001               dd                         878
...........

我想要的是对于每种产品,每个企业我只保留最早一年的结果,例如,产品1中,aa企业出现在2000.2001年,我只保留aa在2000年的数据,dd企业最早出现在2001年,那就保留那一行数据,而在产品2中以此类推。
请问各位应该怎么做呢?本人不大会SAS,但是数据处理急用,所以请各位帮忙解答,谢谢!!!

最佳答案

crazygoing 查看完整内容

试试上面的。针对你的模拟数据是OK了。
关键词:sas程序 company Product produc compan company product 程序 产品 种类

回帖推荐

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

试试上面的。针对你的模拟数据是OK了。

沙发
crazygoing 发表于 2014-4-11 11:57:24
  1. proc sort data=a;
  2. by company year;
  3. run;
  4. proc sort data=a out=a1 nodupkey;
  5. by company product;
  6. run;
复制代码


试试上面的。针对你的模拟数据是OK了。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
liuliuqiu + 5 + 5 + 5 热心帮助其他会员

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

藤椅
liuliuqiu 发表于 2014-4-11 18:54:01
crazygoing 发表于 2014-4-11 12:15
试试上面的。针对你的模拟数据是OK了。
太感谢了,谢谢

板凳
liuliuqiu 发表于 2014-4-11 19:50:35
crazygoing 发表于 2014-4-11 11:57
试试上面的。针对你的模拟数据是OK了。
您好,可以再请教个问题吗?有两个数据集a,b,含有相同的变量year 和company,但其他的变量都不像相同,怎么根据a表中的这两个变量把b表中相同的内容整合在一起呢?(如果b表中没有对应的则保持原样)
举个例子来说,a中:
year   company a1 a2
2000   aa          1   2
2001   bb          2   3
2004   cc           3  4
b中
year    company   b1  b2
2000     aa          5     6
2001     aa         7      8
2002     bb        9      10
2004     cc        8      6
我想要的结果就是,以a表为基础,跟b 表对应,把year和company相同的整合在一起(a表中的数据不变,b表中若有与其对应的则加在a表后面),结果就是
year   company    a1  a2  b1  b2
2000    aa           1    2     5     6
2001    bb           2    3   
2004    cc            3    4     8    6

非常感谢



报纸
crazygoing 发表于 2014-4-12 19:28:40
  1. proc sql;
  2. create table ab as select * from a left join b on a.year=b.year and a.company=b.company;
  3. quit;
复制代码

地板
liuliuqiu 发表于 2014-4-14 08:59:26
crazygoing 发表于 2014-4-12 19:28
太感谢了

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-9 05:16