如何从列值中减去一个数字并在前面保留前导零

How to subtract a number from column value and keep leading zeros in front

所以我希望能够从每个 >= 2400 的数字中减去 2400 以更正 26 小时的时间。 df 看起来像这样:

Time
2519.39
2412.49
2554.12
2043.56

如您所见,由于某种原因,这里的时间是 26 小时制。我想做的是:

df <- df %>%
  mutate('Amended Time' = ifelse(Time >= 2400, Time - 2400, Time)

如果我 运行 这段代码,它确实摆脱了 24 小时时钟之外的任何东西,但也删除了它前面的 00。导致以下 df:

Time     Amended Time
2519.39  119.39
2412.49  12.49
1954.12  1954.12
2043.56  2043.56

现在我如何确保每当从数字中减去 2400 时,它会保留每个单元格中的数字总数?那么,例如,2519.39 变成 0119.39?等..

提前致谢!

由于您的预期输出有小数点前 4 位和小数点后 2 位,您可以使用 sprintf 如下

df %>%
  mutate(`Amended Time` = sprintf("%07.2f", ifelse(Time >= 2400, Time - 2400, Time)))

输出

#     Time Amended Time
# 1 2519.39      0119.39
# 2 2412.49      0012.49
# 3 2554.12      0154.12
# 4 2043.56      2043.56

当然变量Amended Time将是字符,而不是数字。