我有像这样的数据集
id name age sex
1 Murray, W 23 M
2 Bonaventure, T 24 F
3 Eberhardt, S 56 M
4 LaMance, K 78 M
5 Underwood, K 23 F
我们必须从数据集a
创建数据集bid name age sex
2 Bonaventure, T 24 F
我们必须在所有名称变量中选择名称较长的数据,因此我们必须选择名称较长的观察,因此数据集b只包含一个数据。
答案 0 :(得分:1)
您需要首先找到所有记录的最大长度,然后将其与每个单独记录的长度进行比较。请记住,不止一条记录可以满足此标准。在你的例子中只有一个。
以下是使用proc sql
proc sql;
create table b as
select * from a
where
length(name) = (select max(length(name) from a) ;
quit;
答案 1 :(得分:0)
你可以做很多事情。 这里有一个示例,说明如何仅使用一个数据步骤获得正确的结果。
data b;
retain max obs 0;
set a end=last;
if lengthn(name) > max then do;
max = lengthn(name);
obs = _N_;
end;
if last;
set a point=obs;
drop max obs;
run;