gpt4 book ai didi

sas - 如何在以下问题中使用循环?

转载 作者:行者123 更新时间:2023-12-04 10:34:37 29 4
gpt4 key购买 nike

我想遍历一些变量并创建九个新变量,如果前三个变量是“433”或“434”,它们等于 1。我正在使用以下代码,但它的所有内容都显示为 1,有人可以帮忙吗

data icd_dim;
set asg3;
array icd (9) $ ICD9_DGNS_CD_1-ICD9_DGNS_CD_9;
array flag_icd (9) flag_icd_1-flag_icd_9;
do i = 1 to 9;
if icd(i)=substr(icd(i),1,3)="433" OR "434" then flag_icd(i)=1; end;
run;

最佳答案

您正在寻找 IN运算符将一个值与值列表进行比较。您当前的代码正在测试是否 "433"是真还是假。由于它是非空白的,因此被视为 True。

你要:

if substr(icd(i),1,3) in ("433" "434") then flag_icd(i)=1; 

或者为了消除缺失值,只需将测试结果分配给变量并获得 1(真)或 0(假)。
flag_icd(i) =  substr(icd(i),1,3) in ("433" "434") ;

关于sas - 如何在以下问题中使用循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60243303/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com