【问题标题】:Find the times an object has the maximum value in Rstudio查找对象在 Rstudio 中具有最大值的时间
【发布时间】:2020-02-11 19:18:04
【问题描述】:

我有一个对象,其值是每个政党在一个国家/地区的每个地点(950 个地点和 8 个政党)拥有多少票。

我想知道一个政党赢得了多少次(它比其他政党获得了多少票)。

【问题讨论】:

  • 你可以使用aggregate()
  • 好的,对象是一个列表,里面的各方是整数。我应该如何计算?
  • 你能在你的问题中发布一些示例数据吗?

标签: r max apply


【解决方案1】:

也许不是最优雅的解决方案,但似乎可行。

数据

set.seed(111)
party <- rep(LETTERS[1:2], 5)
location <- c(rep("a",2), rep("b",2),rep("c",2),rep("d",2),rep("e",2))
votes <- sample(1:100000, 10)
df <- data.frame(party, location, votes)

第 1 步:使用 aggregate 识别按位置投出的大多数选票:

most_votes <- aggregate(votes ~ location, data = df, max)

第 2 步:将most_votes 中的投票与df 中的投票相匹配,并分配诸如wins 之类的标签以识别得票最多的一方:

df$winner <- ifelse(df$votes[match(df$votes,most_votes$votes)], "wins", NA)

结果

df
   party location votes winner
1      A        a 99283   wins
2      B        a 27417   <NA>
3      A        b 34885   wins
4      B        b  6140   <NA>
5      A        c  3117   <NA>
6      B        c 29258   wins
7      A        d 84249   <NA>
8      B        d 90875   wins
9      A        e 86641   wins
10     B        e 18567   <NA>

【讨论】:

    猜你喜欢
    • 2017-02-20
    • 2014-05-07
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    相关资源
    最近更新 更多