首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果第1列大于第2列,则在第3列中指定名称"Col1“

如果第1列大于第2列,则在第3列中指定名称"Col1“
EN

Stack Overflow用户
提问于 2016-07-12 23:15:24
回答 1查看 216关注 0票数 0

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

代码语言:javascript
运行
复制
| Bird | Cat | Dog |  NAME
| 3    |  4  |  10 |   DOG 
| 5    |  2  |   4 |   BIRD
| 3    |  6  |   2 |   CAT
| 4    |  8  |   9 |   DOG
EN

回答 1

Stack Overflow用户

发布于 2016-07-12 23:41:10

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

在简单性和效率方面,max.col()-based解决方案(链接问题中的第二个答案)优于apply()-based解决方案。

代码语言:javascript
运行
复制
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

Data

代码语言:javascript
运行
复制
df <- data.frame(Bird=c(3L,5L,3L,4L),Cat=c(4L,2L,6L,8L),Dog=c(10L,4L,2L,9L));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38332862

复制
相关文章

相似问题

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