StackOverflow新手。非常感谢您接受这个问题。一整天都试图合并SAS中的文件。
我有三个相关文件: (1)CSV文件" all.csv"需要与CSV文件(2)" ff.csv"合并的相关数据。假设all.csv有一个名为id的6位数标识符,ff.csv有一个名为ID1的6位数标识符。 Csv文件号(3)包含一个匹配" id"的表。到" ID1。"
ID1和" id"有1:1匹配,但来自ff / ID1的人比我需要的人多(我需要来自all.csv的所有人,但只需要来自ff.csv的那些"匹配" all.csv)。
最好的方法是什么?非常感谢。
答案 0 :(得分:0)
假设您的第三个CSV文件有两列名为id和ID1,我会执行以下操作 1.将所有三个文件转换为SAS数据集 2.使用PROC SQL合并所有三个表。根据您的条件,您需要两个左连接。
proc sql;
select t1.*, t2.*, t3.*
from one as t1
left join three as t3
on t1.id = t3.id
left join two as t2
on t2.id1 = t3.id1
quit;
编辑:
如果您运行此代码,您将看到查询有效。
data one;
length id 3. country $ 32;
input id country;
infile datalines dsd;
datalines;
1,CANADA
2,FRANCE
3,GERMANY
4,JAPAN
;
run;
data two;
length id1 3. city $ 32;
input id1 city;
infile datalines dsd;
datalines;
1,BERLIN
2,TOKYO
3,TORONTO
4,MEXICO
5,PARIS
6,MADRID
;
run;
data three;
length id 3. id1 3.;
input id id1;
infile datalines dsd;
datalines;
1,3
2,5
3,1
4,2
;
run;
proc sql;
select t1.*, t2.*, t3.*
from one as t1
left join three as t3
on t1.id = t3.id
left join two as t2
on t2.id1 = t3.id1
;
quit;