繁体   English   中英

使用 dplyr 根据列的最大值创建一个新列

[英]Create a new column based on max of column with dplyr

我有一个如下的data.frame:

 GROUP OGS valMax
1 Group1 A   81.5
2 Group1 B   87.1
3 Group1 C   66.2
4 Group2 D   7.2
5 Group2 E   5.3
6 Group2 F   10.1

我正在尝试通过用“valMax”的最大值填充它来创建新列“groupMax”。 预期的 output 为:

  GROUP OGS valMax groupMax
1 Group1 A   81.5  87.1
2 Group1 B   87.1  87.1
3 Group1 C   66.2  87.1
4 Group2 D   7.2   10.1
5 Group2 E   5.3   10.1
6 Group2 F   10.1  10.1

我做了以下事情:

library(tidyverse)
library(magrittr)
df %>% group_by(GROUP) %>% mutate(groupMax = max(valMax))

我得到的错误是,

变异错误(groupMax = max(valMax)):未找到 object 'valMax'

数据屏蔽在这里不起作用吗?

提前致谢。

正如 Ronak 建议的那样:您可以group_by GROUP 然后使用max() function 改变一个新变量groupMax

library(dplyr)

# your data
df <- tribble(

  ~GROUP, ~OGS, ~valMax,
"Group1", "A", 81.5, 
"Group1", "B", 87.1, 
"Group1", "C", 66.2, 
"Group2", "D", 7.2, 
"Group2", "E", 5.3, 
"Group2", "F", 10.1)

df1 <- df %>% 
  group_by(GROUP) %>% 
  mutate(groupMax = max(valMax))

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM