我有一个包含20个观察数据和6个变量ID,性别,年龄,身高,体重,年份的数据集。除性别变量外,所有都是数字。我想从使用SAS宏的第五次观察开始提取10个观测值。
我有以下代码从表中导入和提取选定的行。
我想使用宏提取所选行作为练习的一部分。请告诉我您如何使用宏来提取特定观察结果的建议。 谢谢你的时间。
%macro one (a, b, c);
proc import out=&a
datafile= "C:\Users\komal\Desktop\&b"
dbms=&c replace;
getnames=yes;
run;
%mend one;
%one (outcsv, Sample.csv, csv);
data test;
set outcsv;
if _N_ in (5,6,7,8,9,10,11,12,13,14) then output;
run;
答案 0 :(得分:2)
你可以做这样的事情
%macro one (a, b, c,strtpt,endpt);
proc import out=&a
datafile= "C:\Users\komal\Desktop\&b"
dbms=&c replace;
getnames=yes;
run;
data test;
set &a;
if _n_ >= &strtpt and _n_ =< &endpt;
run;
%mend one;
%one (outcsv, Sample.csv, csv,5,14);
答案 1 :(得分:2)
无需使用PROC IMPORT从CSV文件中读取数据。特别是如果您已经知道变量的名称/类型。所以这样的事情应该有效。
Float[] arr = {(float)0.2, (float)4.5};
Float[] brr = {new Float(0.2), new Float(4.5)};
float x = 0.2f;
float y = (float)4.5;
System.out.println(Arrays.asList(arr).indexOf(x));
System.out.println(Arrays.asList(arr).indexOf(y));
System.out.println(Arrays.asList(brr).indexOf(x));
System.out.println(Arrays.asList(brr).indexOf(y));
如果文件有标题行,则可能需要使用6到15。