x*********0 发帖数: 651 | 1 我现在有个很大的dataset大概有500,000record。然后我想把这个随机分成2个
dataset,比如说80%和20%,就是一个是training set,一个是testing set。我也能够
用个proc iml写,然后产生随机数这样分,但是我觉得有点笨,而且不知道机子会不会
死。想问问各位大牛,是不是能用简单的办法分?谢谢各位! |
f********e 发帖数: 142 | 2 try proc surveyselect;
【在 x*********0 的大作中提到】 : 我现在有个很大的dataset大概有500,000record。然后我想把这个随机分成2个 : dataset,比如说80%和20%,就是一个是training set,一个是testing set。我也能够 : 用个proc iml写,然后产生随机数这样分,但是我觉得有点笨,而且不知道机子会不会 : 死。想问问各位大牛,是不是能用简单的办法分?谢谢各位!
|
D******n 发帖数: 2836 | 3 data statement can do ah...;
data test train;
set data;
r=uniform(-1);
if (r>0.2) output train;
else output test;
【在 x*********0 的大作中提到】 : 我现在有个很大的dataset大概有500,000record。然后我想把这个随机分成2个 : dataset,比如说80%和20%,就是一个是training set,一个是testing set。我也能够 : 用个proc iml写,然后产生随机数这样分,但是我觉得有点笨,而且不知道机子会不会 : 死。想问问各位大牛,是不是能用简单的办法分?谢谢各位!
|
x*********0 发帖数: 651 | 4 谢谢DaShagen,运行了一下,work了!非常感谢。 |
o****o 发帖数: 8077 | 5 用PROC SURVEYSELECT
或者下面的code
data yourdata;
do id=1 to 4999;
output;
end;
run;
data x1 x2;
set yourdata nobs=ntotal end=eof;
array _k{3} _temporary_;
if _n_=1 then do;
_k[1]=round(ntotal*0.8); _k[2]=ntotal-_k[1]; _k[3]=ntotal;
end;
if ranuni(987655) < _k[1]/_k[3] then do;
k1=_k[1]; k=_k[3]; _k[1]=_k[1]-1; output x1;
end;
else do;
_k[2]=_k[2]-1; output x2;
end;
_k[3] =_k[3]-1;
run;
【在 x*********0 的大作中提到】 : 我现在有个很大的dataset大概有500,000record。然后我想把这个随机分成2个 : dataset,比如说80%和20%,就是一个是training set,一个是testing set。我也能够 : 用个proc iml写,然后产生随机数这样分,但是我觉得有点笨,而且不知道机子会不会 : 死。想问问各位大牛,是不是能用简单的办法分?谢谢各位!
|
s*r 发帖数: 2757 | 6 不用分
做flag
运行的时候用where
...
我发现好多人都有这个问题,分开来用数据,不一定要把数据物理性的切割
【在 x*********0 的大作中提到】 : 我现在有个很大的dataset大概有500,000record。然后我想把这个随机分成2个 : dataset,比如说80%和20%,就是一个是training set,一个是testing set。我也能够 : 用个proc iml写,然后产生随机数这样分,但是我觉得有点笨,而且不知道机子会不会 : 死。想问问各位大牛,是不是能用简单的办法分?谢谢各位!
|
o****o 发帖数: 8077 | 7 有时候物理性的分开效率上还是有提高的
【在 s*r 的大作中提到】 : 不用分 : 做flag : 运行的时候用where : ... : 我发现好多人都有这个问题,分开来用数据,不一定要把数据物理性的切割
|
x*********0 发帖数: 651 | |
g********d 发帖数: 2022 | 9 大牛你受的啥训练,见过你两次回答问题(上次是分割100个文件),每次的code都好
复杂。
【在 o****o 的大作中提到】 : 用PROC SURVEYSELECT : 或者下面的code : data yourdata; : do id=1 to 4999; : output; : end; : run; : data x1 x2; : set yourdata nobs=ntotal end=eof; : array _k{3} _temporary_;
|
s*******2 发帖数: 791 | |