Stata 将秒更改为字符串
我用这些秒表示完成每圈的时间:Stata 将秒更改为字符串,stata,Stata,我用这些秒表示完成每圈的时间: * Example generated by -dataex-. To install: ssc install dataex clear input float(lap lapruntime) 1 1386 2 816 3 1835 4 2048 5 751 6 2456 7 1947 8 1640 9 2090 10 1372 end 有没有办法将这些更改为hours:minutes:seconds字符串 我想我可以用命令做到这一点:
* Example generated by -dataex-. To install: ssc install dataex
clear
input float(lap lapruntime)
1 1386
2 816
3 1835
4 2048
5 751
6 2456
7 1947
8 1640
9 2090
10 1372
end
有没有办法将这些更改为hours:minutes:seconds
字符串
我想我可以用命令做到这一点:
format %tcHH:MM:SS lapruntime
然而,这给了我一些奇怪的结果
我还想对每圈跑步时间之间的差异做同样的处理。如前所述,在这一地区,
egen
有一个社区贡献的功能,但使用官方产品和编造自己的代码要好得多。您的示例时间都不超过60分钟,因此以一种方式获取分钟数,以另一种方式获取秒数会导致连接。一个小技巧是使用%02.0f
来确保按常规显示少于10秒的秒数
* Example generated by -dataex-. To install: ssc install dataex
clear
input float(lap lapruntime)
1 1386
2 816
3 1835
4 2048
5 751
end
egen wanted = elap(lapruntime)
list
+-----------------------------+
| lap laprun~e wanted |
|-----------------------------|
1. | 1 1386 0:00:23:06 |
2. | 2 816 0:00:13:36 |
3. | 3 1835 0:00:30:35 |
4. | 4 2048 0:00:34:08 |
5. | 5 751 0:00:12:31 |
+-----------------------------+
gen minutes = floor(lapruntime/60)
gen seconds = mod(lapruntime, 60)
egen WANTED = concat(minutes seconds), p(:) format(%02.0f)
list
+----------------------------------------------------------+
| lap laprun~e wanted minutes seconds WANTED |
|----------------------------------------------------------|
1. | 1 1386 0:00:23:06 23 6 23:06 |
2. | 2 816 0:00:13:36 13 36 13:36 |
3. | 3 1835 0:00:30:35 30 35 30:35 |
4. | 4 2048 0:00:34:08 34 8 34:08 |
5. | 5 751 0:00:12:31 12 31 12:31 |
+----------------------------------------------------------+
那些按代码行倒数付费的人可以想象一种在一行中完成的方法
strofreal(floor(lapruntime/60))+”:“+strofreal(mod(lapruntime,60),“%02.0f”)
以Stata为单位的时钟时间以毫秒为单位。这是有案可查的。因此,例如1386只能是1.386秒。