首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R- exclusive中的Cut函数,还是重复计数?

R- exclusive中的Cut函数,还是重复计数?
EN

Stack Overflow用户
提问于 2011-11-23 05:09:17
回答 1查看 8.3K关注 0票数 14

根据我问的一个previous question,我有一个关于cut函数和标签的用法的问题。

我想获得基于用户登录次数范围的汇总统计数据。

以下是我的数据:

代码语言:javascript
复制
  # Get random numbers
  NumLogin <- round(runif(100,1,50))

  # Set the login range     
  LoginRange <- cut(NumLogin, 
       c(0,1,3,5,10,15,20,Inf), 
       labels=c('1','2','3-5','6-10','11-15','16-20','20+')
       )

现在我有了LoginRange,但我不确定cut函数实际是如何工作的。我想找到用户谁已经登录了1次,2次,3-5次等,同时只包括用户,如果他们在那个范围内。cut函数是否包含3两次(在2个存储桶和3-5个存储桶中)?如果我查看我的示例,我可以看到一个用户登录了3次,但他们的cut为'2‘。我看过文档和我拥有的每一本R书籍,但都没找到。我做错了什么?

另外,作为一个使用问题,我是否应该将LoginRange附加到我的数据框中?如果是这样,那么最好的方法是什么?

代码语言:javascript
复制
DF <- data.frame(NumLogin, LoginRange)

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-23 05:15:01

cut()函数定义的间隔(默认情况下)在右侧闭合。要了解这意味着什么,请尝试以下命令:

代码语言:javascript
复制
cut(1:2, breaks=c(0,1,2))
# [1] (0,1] (1,2]

如您所见,整数1包含在范围(0,1]中,而不包括在范围(1,2]中。它不会重复计数,并且对于超出定义的存储箱的任何输入值,cut()将返回值NA

在处理整数值数据时,我倾向于在整数之间设置断点,以避免绊倒自己。实际上,对您的数据执行此操作(如下所示),会发现第二个和第三个存储箱的名称实际上是错误的,这很好地说明了这一点!

代码语言:javascript
复制
LoginRange <- cut(NumLogin, 
   c(0.5, 1.5, 3.5, 5.5, 10.5, 15.5, 20.5, Inf),
   # c(0,1,3,5,10,15,20,Inf) + 0.5, 
   labels=c('1','2-3','4-5','6-10','11-15','16-20','20+')
   )
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8233846

复制
相关文章

相似问题

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