楼主: winddr
6902 17

SAS 数据横向合并问题!求助! [推广有奖]

  • 0关注
  • 9粉丝

已卖:288份资源

博士生

91%

还不是VIP/贵宾

-

威望
0
论坛币
59 个
通用积分
111.2336
学术水平
5 点
热心指数
7 点
信用等级
3 点
经验
4300 点
帖子
165
精华
0
在线时间
523 小时
注册时间
2006-3-4
最后登录
2025-11-20

楼主
winddr 发表于 2015-2-27 18:08:24 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有如下两个表格A 和B
A:
name

variable3

variable4

hirs1681

23

23

hirs1681

443

21

hirs1681

21

22

orissa

4

1

Purepixel

34

34

virtuosoonline

33

34

ndokceplok

21

22

frontend

24

1

virtuosoonline

3

4

ftq

1

23

ftq

2

24

ftq

3

25

B:
name

variable1

variable2

hirs1681

1

32

hirs1681

2

22

hirs1681

3

1

Purepixel

4

34

virtuosoonline

5

56

ndokceplok

6

64

frontend

7

32

virtuosoonline

8

1

ftq

22

2

B表格中的内容是A的子集。且A和B中相同“name”的条目,其前后顺序完全一致。现在想将两个表格合并为如下格式:
name

variable1

variable2

variable3

variable4

hirs1681

1

32

23

23

hirs1681

2

22

443

21

hirs1681

3

1

21

22

orissa

4

1

Purepixel

4

34

34

34

virtuosoonline

5

56

33

34

ndokceplok

6

64

21

22

frontend

7

32

24

1

virtuosoonline

8

1

3

4

ftq

22

2

1

23

ftq

2

24

ftq

3

25

请教论坛内高人如何实现?
二维码

扫码加我 拉你入群

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

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

关键词:Variable ONLINE nline onlin front

沙发
winddr 发表于 2015-2-27 20:55:33
自己顶,求大神现身

藤椅
wpfwxn 发表于 2015-2-28 08:53:33
A数据集都衍生一个变量obs,然后用sql合并,再按obs排序

板凳
winddr 发表于 2015-3-2 15:38:02
wpfwxn 发表于 2015-2-28 08:53
A数据集都衍生一个变量obs,然后用sql合并,再按obs排序
能否说的具体一点?谢谢了{:3_59:}

报纸
wpfwxn 发表于 2015-3-2 16:09:49
这还不够具体吗?

地板
winddr 发表于 2015-3-2 17:26:09
wpfwxn 发表于 2015-3-2 16:09
这还不够具体吗?
没看懂{:3_44:}

7
wpfwxn 发表于 2015-3-2 17:39:09
data a;
  set a;
  obs = _N_;
run;

proc sql noprint;
   create table c(drop = obs) as
     select a.name,b.v1, b.v2, a.v3, a.v4, a.obs
     from a left join b
     on a.name = b.name
    order by obs ;
quit;
   
  

8
winddr 发表于 2015-3-2 17:49:00
wpfwxn 发表于 2015-3-2 17:39
data a;
  set a;
  obs = _N_;
代码跑出来的结果是这样的:
namev1v2v3v4
hirs1681

1

32

23

23

hirs1681

2

22

23

23

hirs1681

3

1

23

23

hirs1681

3

1

443

21

hirs1681

2

22

443

21

hirs1681

1

32

443

21

hirs1681

3

1

21

22

hirs1681

1

32

21

22

hirs1681

2

22

21

22

orissa

4

1

Purepixe

4

34

34

34

virtuoso

5

56

33

34

virtuoso

8

1

33

34

ndokcepl

6

64

21

22

frontend

7

32

24

1

virtuoso

5

56

3

4

virtuoso

8

1

3

4

不是我说顺序合并。
我感觉那种double set可能会管用,但自己还不会写这种code

9
wpfwxn 发表于 2015-3-2 17:57:27
我没有仔细看书,尝试下列代码:
data a;
  set a;
  obs = _N_;
run;

proc sql noprint;
   create table c as
     select a.name,b.v1, b.v2, a.v3, a.v4, a.obs
     from a left join b
     on a.name = b.name
    order by obs ;
quit;

data c(drop = obs);
  set c; by obs;
  if first.obs then output;
run;

10
winddr 发表于 2015-3-2 18:06:32
wpfwxn 发表于 2015-3-2 17:57
我没有仔细看书,尝试下列代码:
data a;
  set a;
结果,好像还是不对
QQ截图20150302110602.jpg

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

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