r - R:根据条件存储任何现有名称的新列
问题描述
假设我们有一个如下所示的数据框:
a b c d
22 18 25 9
12 24 6 18
37 8 22 25
24 19 12 27
我想从这些列中创建两个新列:a)一列存储列的名称,每行在其中获得最高值。b) 另一个存储其最高值。
换句话说,我想要的输出如下所示:
a b c d max_col max_val
22 18 25 9 c 25
12 24 6 18 b 24
37 8 22 25 a 37
24 19 12 27 d 27
我该怎么做才能找回这个?
解决方案
这是否有效:
> library(dplyr)
> df %>% rowwise() %>% mutate(max_col = names(df)[which.max(c_across(a:d))], max_val = max(c_across(a:d)))
# A tibble: 4 x 6
# Rowwise:
a b c d max_col max_val
<dbl> <dbl> <dbl> <dbl> <chr> <dbl>
1 22 18 25 9 c 25
2 12 24 6 18 b 24
3 37 8 22 25 a 37
4 24 19 12 27 d 27
>
推荐阅读
- zig - 如何创建一个空的切片切片
- javascript - 如何使用 vue-router 从父路由继承 props
- python - 检查列表是否在python中排序
- python - 如何设置 Selenium for Python 以在 Google Colab 中使用 Firefox 浏览网络?
- r - 从R中的数据框列表中提取多个数据框
- reactjs - 如何使用 React-testing-library 测试 styled-components 属性?
- javascript - 这里的第二个功能可能有什么问题?
- inno-setup - Inno Setup DelTree 不删除顶级文件夹
- swift - MVVM:将 View 与带有闭包的 ViewModel 绑定,这如何导致保留周期?
- android-jetpack-compose - DropdownMenuItem不可点击的android撰写