首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于颊化的Vectorized语句

用于颊化的Vectorized语句
EN

Stack Overflow用户
提问于 2014-02-20 07:36:19
回答 2查看 227关注 0票数 1

我编写了一个函数,它接受一天中小时数的向量,即0到23之间的数字,并将每小时放置在8个连续的桶中。例如,将0、1和2放置在桶1中,而21、22和23小时放在桶8中,桶作为向量返回。

ifelse结构非常复杂,将来我可能会增加或减小每个桶的大小。有人能提出一个替代方案吗?

代码语言:javascript
复制
getBucket <- function(hour)
{
    ifelse (hour < 3, 1, ifelse (hour < 6, 2, ifelse (hour < 9, 3, ifelse (hour < 12, 4, ifelse (hour < 15, 5, ifelse (hour < 18, 6, ifelse (hour < 21, 7, 8)))))))
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-20 08:13:48

整数除法很简单:

代码语言:javascript
复制
hours <- 0:23

hours %/% 3 + 1
# [1] 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8
票数 4
EN

Stack Overflow用户

发布于 2014-02-20 08:09:01

代码语言:javascript
复制
 hours <- c(23,11,2,5, 0)
 findInterval(hours, seq(0, 23, by=3) )
 [1] 8 4 1 2 1
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21901165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档