【问题标题】:Create a new column with intervals in R在 R 中创建一个带有间隔的新列
【发布时间】:2021-12-10 07:14:40
【问题描述】:

我正在寻找一种快速解决方案,如何通过考虑time 列的输出在数据框 (interval) 中创建新列。

我的虚拟列
   time <- c(7.1,8.2,9.3,10.4,11.5,12.6,50.9) 
   df <-  data.frame(time)
   df
我想要的输出

根据 TIME 列中的信息,我想确定时间间隔。在我的示例中,介于 0.0-10.0(包括 10)之间的任何值都等于间隔 10。如您所见,间隔按 10 分组。因此,介于 10.0-20.0 之间的任何内容都将分配给间隔 20,依此类推。

任何关于如何获得带间隔的新列的提示将不胜感激。谢谢

【问题讨论】:

  • 类似(time %/% 10 + 1) * 10
  • 我认为这正是我想要的。我使用df["interval"]&lt;-(df$time %/% 10 + 1) * 10 将新列放入我的data.frame。非常感谢。只有最后一件事。你能解释一下你在那里做了什么,以便我能更好地理解它吗?非常感谢。
  • 我得出了同样的结论。它是关于确定值时间覆盖多少个完整间隔(因此%/% 即整数除法)是有用的,然后你想要所述间隔的右端,那就是+ 1。此外,您所有的间隔都具有相同的长度,10
  • @Mossa 是正确的。整数除以 10,因为这是您要查找的区间。加 1 乘以 10 得到结果。模数和整数除法是方便的快捷方式。

标签: r loops time tidyverse intervals


【解决方案1】:

将 cmets 移至答案。您可以使用整数除法来执行此操作。您将时间列除以 10,因为这是您要查找的间隔。加 1 乘以 10 得到结果。

df["interval"]<-(df$time %/% 10 + 1) * 10

【讨论】:

    猜你喜欢
    • 2020-08-22
    • 2021-07-06
    • 2015-06-16
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 2015-04-24
    • 1970-01-01
    相关资源
    最近更新 更多