SAS删除非数字列的行

  • 本文关键字:数字 删除 SAS sas
  • 更新时间 :
  • 英文 :


我在SAS中有这个数据集学生,我计划删除成绩是非数字的记录(行)。我试了下面的代码,它没有工作。我试过了。然后也删除;',它仍然不起作用。我不想替换值,我只想删除行。对此有什么想法吗?

data student;
infile datalines firstobs=2 dsd truncover; 
input student$ class$ grade; 
datalines;
student, class, grade 
Jansen, Brave, A
Yassin, Brave, 70
Benison, Brave, 67
Yan Jin, Brave, E
James, Hero, 90 
Michelle, Hero, 89
Hiroku, Hero, C 
Misoku, Hero, 93
;
run; 
data student_cleaned; 
set work.student; 
if not (anyalpha(grade)) then delete; 
run; 

在第一步中,您以数字形式阅读年级。这意味着SAS已经从该数据集中删除了所有字符。把它当作人物来读,然后你就可以进行第二步了。在grade后面加一个$,将其作为字符值读入。

字面意思是一个字符的变化;)

data student;
infile datalines firstobs=2 dsd truncover; 
input student$ class$ grade $; 
datalines;
student, class, grade 
Jansen, Brave, A
Yassin, Brave, 70
Benison, Brave, 67
Yan Jin, Brave, E
James, Hero, 90 
Michelle, Hero, 89
Hiroku, Hero, C 
Misoku, Hero, 93
;
run; 
data student_cleaned; 
set work.student; 
if anyalpha(grade) then delete; 
run; 

您已经将GRADE读取为数字变量。像A或E这样的单字母代码将被映射到相应的特殊缺失值,如A或E。任何其他的文本将被映射到普通失踪。

你可以使用MISSING()函数来测试这些。

if missing(grade) then delete; 

相关内容

  • 没有找到相关文章

最新更新