首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取给定时间段内最常见的字符串值(模式)。

问获取给定时间段内最常见的字符串值(模式)。
EN

Stack Overflow用户
提问于 2013-06-23 20:45:39
回答 2查看 3.8K关注 0票数 3

我曾希望使用ddply的模式函数按时间段为某个用户查找最常见的字符串。

这与this问题和this question显著相关。

使用与此类似的数据集:

代码语言:javascript
复制
Data <- data.frame(
    groupname = as.factor(sample(c("red", "green", "blue"), 100, replace = TRUE)),
    timeblock = sample(1:10, 100, replace = TRUE),
    someuser = sample(c("bob", "sally", "sue"), 100, replace = TRUE))

我试过:

代码语言:javascript
复制
groupnameagg<- ddply(Data, .(timeblock, groupname, someuser), summarise, groupmode = mode(groupname))

但这不是我所期望的。它返回:

代码语言:javascript
复制
> head(groupnameagg$groupname)
[1] "numeric" "numeric" "numeric" "numeric" "numeric" "numeric"
  1. 如何按时间块按用户查找最常见的组名称?其结果类似于:

代码语言:javascript
复制
    timeblock   username  mostcommongroupforuser
        1          bob     red
        1          sally   red
        1          sue     green
        2          bob     green
        2          sally   blue
        2          sue     red
  1. 如果组名是按级别组织的,我如何才能在每个timeblock中获得最高级别?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-23 21:33:48

认为聚合应该对两者都有好处。

第1部分

代码语言:javascript
复制
aggregate(Data$groupname,by=list(Data$timeblock,Data$someuser),
     function(x) { 
          ux <- unique(x) 
          ux[which.max(tabulate(match(x, ux)))] })

第2部分

代码语言:javascript
复制
aggregate(Data$groupname,by=list(Data$timeblock,Data$someuser),
     function(x) { 
         levels(Data$groupname)[max(as.numeric(x))] })
票数 4
EN

Stack Overflow用户

发布于 2013-06-23 21:01:53

使用来自ddply的plyr

代码语言:javascript
复制
ddply(Data, .(timeblock, groupname, someuser),
  function(x){as.character(
                    unique(
                      x$groupname[x$someuser==
                                    names(which.max(table(x$someuser)))
                        ]
                      )
                    )
              }
  )

    timeblock groupname someuser    V1
1          1      blue      bob  blue
2          1      blue    sally  blue
3          1     green      bob green
.........
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17265141

复制
相关文章

相似问题

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