如何从列值中减去一个数字并在前面保留前导零
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
将是字符,而不是数字。
所以我希望能够从每个 >= 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
将是字符,而不是数字。