R 编程 - 将数字转换为 MM:SS
R Programming - convert numeric to MM:SS
这可能是个愚蠢的问题,但我找不到任何相关信息。
我有一个代表秒的数值。如何将其转换为 MM:SS
例如
我的号码是96
在MM:SS中表示应该是01:36.
感谢任何帮助。
尝试:
x<-96
sprintf("%02d:%02d",x%/%60,x%%60)
#[1] "01:36"
%/%
(integer division) and %%
(modulo) 操作员是你的朋友:
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
)
您是否需要它取决于您的最终用例。
这些运算符对于这类操作非常有用;另一个例子是将空间坐标的度、分、秒表示法转换为十进制度数。
这可能是个愚蠢的问题,但我找不到任何相关信息。
我有一个代表秒的数值。如何将其转换为 MM:SS
例如
我的号码是96
在MM:SS中表示应该是01:36.
感谢任何帮助。
尝试:
x<-96
sprintf("%02d:%02d",x%/%60,x%%60)
#[1] "01:36"
%/%
(integer division) and %%
(modulo) 操作员是你的朋友:
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
)
您是否需要它取决于您的最终用例。
这些运算符对于这类操作非常有用;另一个例子是将空间坐标的度、分、秒表示法转换为十进制度数。