【问题标题】:If Column 1 greater than Column 2, assign name "Col1" in column 3 [duplicate]如果第 1 列大于第 2 列,则在第 3 列中分配名称“Col1”[重复]
【发布时间】:2016-11-14 22:20:04
【问题描述】:

我希望在这里找到一个解决方案,该解决方案将逐行决定 3-4 列(应用?),并在新列 [df$NAME] 中分配最高值列的名称.下面是我希望结果的样子;最好的方法是什么?谢谢!

| Bird | Cat | Dog |  NAME
| 3    |  4  |  10 |   DOG 
| 5    |  2  |   4 |   BIRD
| 3    |  6  |   2 |   CAT
| 4    |  8  |   9 |   DOG

【问题讨论】:

    标签: r


    【解决方案1】:

    Is there something like a pmax index? 非常适合您。

    为了简单和高效,基于max.col() 的解决方案(链接问题中的第二个答案)优于基于apply() 的解决方案。

    df$NAME <- names(df)[max.col(df)];
    df;
    ##   Bird Cat Dog NAME
    ## 1    3   4  10  Dog
    ## 2    5   2   4 Bird
    ## 3    3   6   2  Cat
    ## 4    4   8   9  Dog
    

    数据

    df <- data.frame(Bird=c(3L,5L,3L,4L),Cat=c(4L,2L,6L,8L),Dog=c(10L,4L,2L,9L));
    

    【讨论】:

    • 太棒了!这很完美。非常感谢您的帮助!
    猜你喜欢
    • 2015-11-30
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 2017-11-21
    相关资源
    最近更新 更多