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

Comparing each values of each group to the minimum of the group

我有按年分组的数据。我想用 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 }

我们可以在按 'years'

分组后使用 mutate_if
library(dplyr)
df1update <-  df1 %>%
    group_by(years) %>%
    mutate_if(is.numeric, ~  replace(., . > (min(., na.rm = TRUE) + 2),  NA))

如果我们只需要对单个变量执行此操作

df1update <- df1 %>%
               group_by(years) %>%
               mutate(Data1 = replace(Data1, Data1 > (min(Data1, na.rm = TRUE) + 2), NA))