我是SAS新手我有SAS数据(它不包含Obs列)
Obs ID Name Score1 Score2 Score3
1 101 90 95 98
2 203 78 77 75
3 223 88 67 75
4 280 68 87 75
.
.
.
.
100 468 78 77 75
Run Code Online (Sandbox Code Playgroud)
我希望数据的行号为2 6 8 10 34.输出应该是这样的
Obs ID Name Score1 Score2 Score3
1 203 78 77 75
2 227 88 67 75
3 280 68 87 75
.
.
.
Run Code Online (Sandbox Code Playgroud)
提前致谢.
您可以使用数据步骤循环遍历每一行数据,并且仅当您处于第 n 个循环且具有这样的条件时才输出这些行。
data test;
set LIB.TABLE;
if _N_ in (2, 6, 8, 10, 34) then output;
run;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,其中_N_将对应于行号。
另一个答案适用于小型表,但如果您使用的是非常大的表,则它会低效,因为它会读取表中的每一行以查看它是否具有正确的行号.这是一个更直接的方法:
data example;
do i = 2, 6, 8, 10;
set sashelp.class point = i;
output;
end;
stop;
run;
Run Code Online (Sandbox Code Playgroud)
这样就可以选出你真正想要的行,而不是读取所有其他行.