楼主: priss111
1776 2

[原创博文] 请问各位大大:如何用不完全(有缺失)的几个变量匹配4个csv数据集里的数据?谢谢! [推广有奖]

  • 0关注
  • 5粉丝

副教授

15%

还不是VIP/贵宾

-

威望
0
论坛币
153 个
通用积分
47.5396
学术水平
11 点
热心指数
14 点
信用等级
10 点
经验
14938 点
帖子
473
精华
0
在线时间
805 小时
注册时间
2008-3-30
最后登录
2024-4-12

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教各位大侠,
如何用简洁的思路写出求1/(0+1)的百分比(0-1是匹配指标变量a的取值)的code? 非常感谢!

具体如下:
1、有A、B、C、D 4个csv的数据库
2、A中有3个变量x , y, z
3、B中有3个变量x,y,s
4、C中有3个变量z, s, x(与A,B中变量x有部分相同,另一部分为缺失)
5、D中有3个变量z,s,x(与A,B中变量x有部分相同,另一部分为缺失)

说明:
1、A中的z有很多缺失,B中的s有很多缺失,C中s也有部分缺失,D中的s也有部分缺失
2、这4个数据库除了共有的这几个变量外,其他很多变量都不同的;A库中包含所有B库中的人,B库中包括C库的人

目的:
1、先把B库与A库匹配,把s变量添加到A库中
2、把A库中s变量符合条件的筛选出生成E库
3、C库或者D库中与E库只要x,z,s有一个变量能够匹配上就算匹配上了,就生成一个指示变量a(in=a),
这样最终可以求出指示变量a中1的百分比即(a=1/(a=0+a=1)


请各位大侠帮忙想想,急需,非常感谢!
二维码

扫码加我 拉你入群

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

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

关键词:如何用 用不完 数据集 各位大侠 非常感谢 数据库 百分比 如何

沙发
sas_user 发表于 2011-4-9 02:45:02 |只看作者 |坛友微信交流群
PROC IMPORT DATAFILE= "C:\a.csv" OUT= WORK.a replace; RUN;
PROC IMPORT DATAFILE= "C:\b.csv" OUT= WORK.b replace; RUN;
PROC IMPORT DATAFILE= "C:\c.csv" OUT= WORK.c replace; RUN;
PROC IMPORT DATAFILE= "C:\d.csv" OUT= WORK.d replace; RUN;


proc sql;
create table E as select a.x,a.y,z,s from A,B where A.x=B.x and A.y=B.y where s=condition;
quit;

proc sort data = e; by z s x; run;
proc sort data = c; by z s x; run;
proc sort data = d; by z s x; run;

data indicator;
merge e (in=e) c (in=c) d(in=d);
by z,s,x;
if e or c or d then a=1;
run;

由此得到a=1的表,再用此表与a,b,c,d,e中的任意一个重新合并,即可得到a的总个数包括1和0.
再由proc freq 得比率

proc freq data=test;
table a;
run;
已有 1 人评分学术水平 热心指数 收起 理由
priss111 + 1 + 1 非常感谢!! 学习中...

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

使用道具

藤椅
priss111 发表于 2011-4-9 16:46:13 |只看作者 |坛友微信交流群
2# sas_user

非常感谢!

正在试中,
A,B,C,D四个数据是对原始数据进行条件筛选后得到的,
筛选后可借鉴您的code,
sql 是第1次实战,所以这个学习过程比较慢
...

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-24 16:45