所以我做了一些在线搜索,但没有找到任何可以解决这个问题的东西.从本质上讲,我已经获得了一个数据集,然后我根据名称将其拆分为单个数据集.
但是,如果此人是女性,则需要从数据集中省略年龄.示例输出:
男性
姓名年龄体重身高
女性
名称重量高度
我尝试过以下IF语句,但它似乎只是从男性和女性表中删除年龄变量:
if sex="F" then do;
drop age;
end;
Run Code Online (Sandbox Code Playgroud)
我是SAS的新手,所以任何帮助都将不胜感激!
在SAS中运行数据步骤时,某些语句在编译期间处理,其他语句随后在执行期间处理.在这种情况下,drop语句在if-then逻辑之前处理,因此您不能使用它来有条件地删除列.
或者,您可以age为每个受影响的行输出缺失值,例如
if sex = 'F' then call missing(age);
Run Code Online (Sandbox Code Playgroud)
或者您可以在一个输出数据集上使用drop子句但不能在另一个输出数据集上使用
data boys girls(drop=age);
set sashelp.class;
if sex = 'F' then output girls;
else if sex = 'M' then output boys;
run;
Run Code Online (Sandbox Code Playgroud)