将每个组的每个值与该组的最小值进行比较

问题描述 投票:1回答:1

我有按年份分组的数据。我想用NA替换x>(minimum + 2)的每个数据。每年的最小变化。我当时想使用ddply按年提取最小值,但我不知道如何将每年的每个值与其特定的最小值进行比较...

非常感谢。

  New <-  Ancian %>%
group_by(Years) %>%
mutate_if(New$Data1, ~  replace(., . > (min(., na.rm = TRUE) + 2),  NA))

我尝试过此操作,但不起作用...还尝试在group_by之后执行“ if”功能,但也没有结果...

group_by(Years) %>%
if(New$Data1 > (min(New$Data, na.rm = TRUE) + 2)) { 
New$Data1 <- NA }
r replace compare plyr minimum
1个回答
0
投票

我们可以按[年]分组后使用mutate_if

library(dplyr)
df1update <-  df1 %>%
    group_by(years) %>%
    mutate_if(is.numeric, ~  replace(., . > (min(., na.rm = TRUE) + 2),  NA))
© www.soinside.com 2019 - 2024. All rights reserved.