我在阅读一个特定的数据列时遇到了问题。我遇到问题的原始文本文件列如下所示:
55.49
1:23.57
32.22
5:38.43
12:52.17
25.13
表格是分钟:秒秒ms ms。这个特定的数据不会进入小时。我尝试将变量格式化为TIME6.2;但我收到超过70%的数据缺失值。我也调整了宽度。我也尝试使用信息,但我没有任何成功。但是我可能错误地使用它。截至目前,我正在读取数据作为字符值,但我需要它是一个数值,所以我可以进行数据比较。
非常感谢任何建议!
谢谢!
编辑:我想记下这些已经过去的时间(比赛结果)。我希望能够读取数据,然后比较第一,第二,第三等等的比赛时间。
答案 0 :(得分:0)
您需要了解的第一件事是信息和格式之间的区别。
Informat是SAS用于将文本转换为数字的模式。您要使用的信息是hhmmss.
。
格式适用于数字;它告诉SAS您希望如何显示或打印特定数字。为了表示您的时间,您需要一个大于6的宽度来计算您要打印的:
和.
个字符。尝试更大的time12.2
格式。总宽度为12,ms数字为两个空格:
编辑:假设您的文本文件是分隔的,似乎hhmmss
信息不喜欢不够宽的值。如果您以字符$
的形式阅读时间,然后使用input()
函数将时间转换为数字,它确实有效。
data yourdata;
format finaltime time12.2;
infile cards dlm=',';
input age team finaltimec $ score;
finaltime = input(finaltimec,?? hhmmss.);
drop finaltimec;
cards;
20,1,55.49,1
22,1,1:23.57,2
34,1,NA,3
19,2,32.22,4
55,3,5:38.43,5
17,3,12:52.17,6
31,3,25.13,7
;
run;