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