如何将一次mm:ss.ss格式读入sas?
How to read in a time mm:ss.ss format into sas?
我在读取某一特定数据列时遇到问题。我遇到问题的原始文本文件列如下所示:
55.49
1:23.57
32.22
5:38.43
12:52.17
25.13
形式为minute minute : second second ms ms。此特定数据不会进入小时数。我尝试将变量格式化为 TIME6.2;但我得到了超过 70% 的数据的缺失值。我也搞砸了调整宽度。我也尝试使用 informat mmss,但没有成功。但是我可能使用不当。到目前为止,我正在以字符值的形式读取数据,但我需要它是一个数值,这样我才能进行数据比较。
如有任何建议,我们将不胜感激!
谢谢!
编辑:我想指出这些是经过的时间(比赛结果)。我希望读入数据,然后能够比较比赛时间,排名第一、第二、第三等
您首先需要了解的是信息格式和格式之间的区别。
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;
我在读取某一特定数据列时遇到问题。我遇到问题的原始文本文件列如下所示:
55.49
1:23.57
32.22
5:38.43
12:52.17
25.13
形式为minute minute : second second ms ms。此特定数据不会进入小时数。我尝试将变量格式化为 TIME6.2;但我得到了超过 70% 的数据的缺失值。我也搞砸了调整宽度。我也尝试使用 informat mmss,但没有成功。但是我可能使用不当。到目前为止,我正在以字符值的形式读取数据,但我需要它是一个数值,这样我才能进行数据比较。
如有任何建议,我们将不胜感激!
谢谢!
编辑:我想指出这些是经过的时间(比赛结果)。我希望读入数据,然后能够比较比赛时间,排名第一、第二、第三等
您首先需要了解的是信息格式和格式之间的区别。
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;