在sas中选择名称较长的观察值或行
我有一个这样的数据集在sas中选择名称较长的观察值或行,sas,Sas,我有一个这样的数据集 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创建数据集b id name age sex 2 Bonaventure, T 24 F 我们必须在all na
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创建数据集b
id name age sex
2 Bonaventure, T 24 F
我们必须在all name变量中选择名称较长的数据,因此我们必须选择名称较长的观测值,以便数据集b仅包含一个数据。您需要首先找到所有记录的最大长度,然后将其与每个单独记录的长度进行比较。请记住,多个记录可以满足此标准。但在你的例子中只有一个 下面是一个使用
proc-sql
proc sql;
create table b as
select * from a
where
length(name) = (select max(length(name) from a) ;
quit;
你有很多可能做到这一点。 这里有一个示例,说明如何仅使用一个数据步骤获得正确的结果
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;
这是一种测试/训练练习吗?使用
length()。这甚至不是一个非常特殊的问题。如果您认为答案可以回答您的问题,请接受答案。