g****c 发帖数: 108 | 1 一个dataset one,里面有两个变量x和y。
x y |
k*******a 发帖数: 772 | 2 data a;
infile datalines missover;
input x y;
datalines;
1 1
2 3
3 5
4 7
5
6
7
8
9
10
;
run;
proc sql;
create table b as
select x as z
from a
where x not in (select y from a);
quit;
data a;
merge a b;
run;
proc print data=a;run; |
g****c 发帖数: 108 | |
T*******I 发帖数: 5138 | 4 按照这个程序只能得到一个新dataset,而Z的值与X和Y的值的对应关系存在很多的可能
性,即可以得到很多个datasets.当样本量大的时候,这种可能性可以达到不可思议的
程度。
所以,我不明白LZ为何要做这种数据转换?这个问题的实际背景是什么?如果LZ认为这
涉及到自己的方法学研究,可以不予回答;但如果没有什么秘密可言,可否解释一下这
个背景?谢谢。
【在 k*******a 的大作中提到】 : data a; : infile datalines missover; : input x y; : datalines; : 1 1 : 2 3 : 3 5 : 4 7 : 5 : 6
|
f********t 发帖数: 117 | 5 select x, y, z
from data d
left join
(select x as z from data
except
select y as z from data
) zz
on (zz.z = d.x) |
p***s 发帖数: 68 | 6 As an option, can use two arrays for X & Y in place of SQL that you used.
But your way is much better for large obs.
【在 k*******a 的大作中提到】 : data a; : infile datalines missover; : input x y; : datalines; : 1 1 : 2 3 : 3 5 : 4 7 : 5 : 6
|
p***s 发帖数: 68 | 7 Note that Kirkland use MERGE without BY statement, it will not lead to a
Cartesian product. So it is OK.
【在 T*******I 的大作中提到】 : 按照这个程序只能得到一个新dataset,而Z的值与X和Y的值的对应关系存在很多的可能 : 性,即可以得到很多个datasets.当样本量大的时候,这种可能性可以达到不可思议的 : 程度。 : 所以,我不明白LZ为何要做这种数据转换?这个问题的实际背景是什么?如果LZ认为这 : 涉及到自己的方法学研究,可以不予回答;但如果没有什么秘密可言,可否解释一下这 : 个背景?谢谢。
|