【发布时间】:2015-08-24 18:50:58
【问题描述】:
我有一个数据集,其中包含一个我想在代码中使用的名为“Condition”的变量。我猜我需要在宏中执行此操作,但我仍在学习如何在 SAS 中编写宏。
所以如果我的数据集是这样的:
Question,Answer,Condition,Result
Q1,1,Answer=1," "
Q2,2,Answer=1," "
Q3,3,Answer=4," "
那我想让程序把Condition变量当作一个字符串,然后用它作为if语句:
if Condition then Result = "Correct";
这可能吗?
【问题讨论】:
-
实际上,如果您确实有问题和答案以及一组有效答案,那么您可能需要考虑使用 PROC SCORE 对答案进行“评分”。
-
我想要完成的是一个程序,它检查数据集的跳跃模式和答案,这取决于其他问题的回答方式。我想出的是让研究人员使用 Excel(他们熟悉)创建一个答案键,其中一部分键是添加要回答的问题必须为真的条件。研究人员写下条件(“答案 = 1”),然后程序获取实际答案并标记那些不符合条件的答案。我希望不对条件语句进行硬编码,而是让研究人员将它们写入 excel。
-
@Andy 你可能想看看我在 MWSUG2014 上共同撰写的论文,Documentation Driven Programming,这与你正在做的事情非常接近。它显示了类似的方法。
-
您不能只从包含每个问题的正确答案的条件列中创建一个新列,然后将给定答案与正确答案进行比较吗?还是我错过了什么?
-
@user667489 鉴于澄清评论,这种事情是行不通的 - 逻辑不仅仅是跳过模式和范围检查的“一个正确答案”。
标签: if-statement sas sas-macro