loops - 根据 Y/N 列修改 SAS 中的行
问题描述
我正在尝试为具有特定条件的某些行修改 SAS 中的列。
这是我目前掌握的信息:
patientNum siteNum diseaseType haveDiseaseD
001 12 A N
002 14 B N
003 15 C Y
我希望新表如下所示:
patientNum siteNum diseaseType
001 12 A
002 14 B
003 15 D
因此,如果任何患者在“HaveDiseaseD”列下有“是”,我只想修改表格并切换“DiseaseType”列中的信息。
逻辑类似于:
data have;
set want;
do i = 1 to dim(patientNum);
if haveDiseaseD(i) == 'Y' then diseaseType(i) = D
else diseaseType(i) = diseaseType(i)
run;
解决方案
SAS 自动逐行遍历数据。您不需要指定数组或维度。由于如果另一列满足条件,您只需要更改一列的一个值,因此您的程序将只有四行代码。
data have;
set want;
if(haveDiseaseD = 'Y') then diseaseType = 'D';
run;
推荐阅读
- tensorflow - Tensorflow 1.14,修复:“google.protobuf.message.DecodeError”:解析消息时出错
- python - 我的系统中有 python 2.7 和 3.8,如何使用 python 3.8 或删除 2.7?
- python - PyGame 碰撞冷却
- google-apps-script - 无法使用 Apps 脚本和高级保护访问 Google 表格数据
- javascript - React 中的应用程序文件无法识别 jsx 语法
- ios - 通过主视图控制器与 UICollectionViewCell 中的按钮交互
- python - 如何找到方法并访问所有单元格
- python - 使用 sklearn 绘制 ROC 曲线以进行硬多类预测
- microchip - 在 MPLAB X IDE v5.45 的输出窗口中更改链接颜色
- pandas - 在 pandas 中使用 groupby 的自定义函数。为什么其中一些不起作用?