[英]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.