楼主: shanshan199216
11457 16

[问答] sas按出现的顺序标记序号 [推广有奖]

  • 0关注
  • 30粉丝

已卖:19份资源

博士生

0%

还不是VIP/贵宾

-

威望
0
论坛币
4182 个
通用积分
13.7644
学术水平
4 点
热心指数
4 点
信用等级
4 点
经验
911 点
帖子
55
精华
0
在线时间
375 小时
注册时间
2015-7-7
最后登录
2025-5-19

楼主
shanshan199216 学生认证  发表于 2017-7-18 09:42:16 |AI写论文
33论坛币
现有企业出口数据,变量包括企业-出口国家-年份,现在去掉了企业-国家的重复值,我想构建一个新变量,把每个企业第一年出口的国家记为1,第二年出口的国家记为2,然后依次累加。。。
当然企业出口的时间可能不连续,每年出口的国家也不是只有一个。。。企业有几万了,确实没办法用手去标记,麻烦了,金币可以商量。。。

最佳答案

popodan 查看完整内容

proc import datafile='c:/sas/test1.xls' out=test; run; proc sort data=test out=sort_test1; by party_id t; run; proc sort data=test out=sort_test2(keep=party_id t) nodupkey; by party_id t; run; data ntest; set sort_test2; by party_id t; if first.party_id then n=0; if first.t then do until(last.t); n+1; end; run; proc sql; create table final_test as select a.*,b.n from ( ...
关键词:出口国家 重复值 新变量 出口国 国家的

沙发
popodan 在职认证  发表于 2017-7-18 09:42:17
shanshan199216 发表于 2017-7-20 09:22
只是标出123这种就可以了,不用累加,可能我打错了,
proc import datafile='c:/sas/test1.xls' out=test;
run;
proc sort data=test out=sort_test1;
by party_id t;
run;
proc sort data=test out=sort_test2(keep=party_id t) nodupkey;
by party_id t;
run;

data ntest;
set sort_test2;
by party_id t;
if first.party_id then n=0;
if first.t then do until(last.t);
n+1;
end;
run;

proc sql;
create table final_test as
select a.*,b.n from
(sort_test1 as a
left join
ntest as b
on a.party_id=b.party_id and a.t=b.t);
quit;

藤椅
QDQ_tutu 发表于 2017-7-18 14:43:49
by 企业,年份排序  新建变量年份2   
retain  年份2 和n   
if first.企业=1 then do;  n=1;end;
if first.企业=0  then  do;
对比年份2和年份
   if 相同 then n=1   
   if 不同 then  n=n+1
end;
已有 2 人评分论坛币 学术水平 热心指数 收起 理由
eijuhz + 1 + 1 热心帮助其他会员
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20  学术水平 + 1  热心指数 + 1   查看全部评分

板凳
shanshan199216 学生认证  发表于 2017-7-18 16:30:12
QDQ_tutu 发表于 2017-7-18 14:43
by 企业,年份排序  新建变量年份2   
retain  年份2 和n   
if first.企业=1 then do;  n=1;end;
其中的汉字可以直接用吗?底子薄,都是现学现用,请问可以加一下企鹅或者v吗,金币多少都可以

报纸
QDQ_tutu 发表于 2017-7-18 17:32:00
shanshan199216 发表于 2017-7-18 16:30
其中的汉字可以直接用吗?底子薄,都是现学现用,请问可以加一下企鹅或者v吗,金币多少都可以
不可以 要用你的变量名啊  你这没有数 我这说的只是思路

地板
shanshan199216 学生认证  发表于 2017-7-18 22:19:39
QDQ_tutu 发表于 2017-7-18 17:32
不可以 要用你的变量名啊  你这没有数 我这说的只是思路
企业这种是变量名,那相同和不同用什么呢?same?

7
shanshan199216 学生认证  发表于 2017-7-18 22:33:26
QDQ_tutu 发表于 2017-7-18 14:43
by 企业,年份排序  新建变量年份2   
retain  年份2 和n   
if first.企业=1 then do;  n=1;end;
我想了一下,这样好像实现不了,自己也想了很久,但是企业出口年份不连续,所以也没做出来。

我的意思是把每个企业第一年出口的国家记为1,第二年出口的所有国家记为2,第三年出口的国家记为3,然后依次累加。。。您看看思路可行吗?

我知道不同是distinct。。相同直接用=?麻烦了

8
大片阳光因你 发表于 2017-7-19 01:04:39
上测试数据集

9
shanshan199216 学生认证  发表于 2017-7-19 10:01:27
大片阳光因你 发表于 2017-7-19 01:04
上测试数据集
用的企业数据,数据量太大。。。我看看能不能放一部分上来,您能不能大概说一下用什么命令呢?

10
shanshan199216 学生认证  发表于 2017-7-19 10:57:32
测试数据集

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

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