【问题标题】:How to subtract a number from column value and keep leading zeros in front如何从列值中减去一个数字并在前面保留前导零
【发布时间】:2020-06-22 12:43:52
【问题描述】:

所以我希望能够从 >= 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?等等。

提前致谢!

【问题讨论】:

标签: r dplyr format calculated-columns subtraction


【解决方案1】:

由于您的预期输出有小数点前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 将是字符,而不是数字。

【讨论】:

    猜你喜欢
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 2023-01-22
    • 2020-06-11
    相关资源
    最近更新 更多