假设您导入了一些文件,并且拥有变量
name room# test1 test2 test3
和n个观察结果。
名称是名称,房间号码是长度为3的房间号码,test1 - test3的评分为0 - 100.
name room# test1 test2 test3
bob 123 90 40 33
bob2 123 a 40 90
bob3 123 88 k 78
..
现在,假设我想找到字母k
的所有实例,并用数值零替换它们。如何才能做到这一点?我在初始数据步骤中使用if then语句,即
data temp;
infile = "...." ;
if test1 = k then test1=0;
if test2 = k then test2=0;
if test3 = k then test3=0;
run;
有更好的方法吗?
答案 0 :(得分:2)
您可以使用informat
执行此操作。我将.A
分配给A
值,这是一个特殊的缺失值(它将被视为缺失,但显示为" A"不是"。" )。信息是告诉SAS在读入数字字段时文本字符串应具有的值。
如果您想将A
和K
保持为"缺少"顺便说一句,您将不需要信息;只是missing a k;
语句告诉SAS在遇到普通数字读入时将这两个字符视为特殊缺失值。但是在这里你需要信息来正确对待它们,因为你希望K
为0。
顺便提一下,我很想建议把它们作为特殊缺失来阅读,并在你用它计算时将K
像0一样对待 - 转换为{{1马上丢失信息。
0
答案 1 :(得分:0)
如果您正在阅读文本文件,请使用MISSING
语句让SAS知道您希望它包含哪些字母,以便您将其视为特殊缺失值。因此,A
字母将成为特殊缺失值.A
。
missing a k ;
data want;
input name $ room $ test1 test2 test3;
datalines;
bob 123 90 40 33
bob2 123 a 40 90
bob3 123 88 k 78
;;;;
现在,如果您想将缺失的值转换为零,那么就会有多个帖子在线,以便如何做到这一点。