这可能是一个愚蠢的问题,但我找不到任何关于此的信息。
我有一个代表秒的数值。如何将其转换为 MM:SS
例如
我的号码是96
用 MM:SS 表示应该是 01:36。
任何帮助表示赞赏。
最佳答案
%/%
( integer division ) 和 %%
( modulo ) 运营商是您的 friend :
x <- 96
paste(x %/% 60, x %% 60, sep = ":")
这使
> paste(x %/% 60, x %% 60, sep = ":")
[1] "1:36"
这是在一个函数中:
d2ms <- function(x) {
paste(x %/% 60, x %% 60, sep = ":")
}
> xx <- c(120, 96, 45, 30)
> d2ms(xx)
[1] "2:0" "1:36" "0:45" "0:30"
这表明我们需要一点帮助才能准确获得您需要的格式;见
?sprint
有关使用前导 0 等格式化数字 [作为字符] 的方法:d2ms <- function(x) {
sprintf("%02d:%02d", x %/%60, x %% 60)
}
> d2ms(xx)
[1] "02:00" "01:36" "00:45" "00:30"
请注意
:
在上面的字符串中是一个文字,%xxy
位是在接下来的两个参数中指定的值的格式,并包括要填充的零数量的格式详细信息(即用零填充,直到数字使用两位数字。)这里使用的模板是:%[flag][width]specifier
,我们在这里使用了:
0
作为标志 --- 用 0
填充s 2
, 我们要 MM 或 SS d
对于整数(也可以是 i
)您是否需要它取决于您的最终用例。
这些运算符对于此类操作非常有用;另一个示例是将度、分、秒表示法转换为空间坐标的十进制度数。
关于R 编程 - 将数字转换为 MM :SS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33815281/