我有按年份分组的数据。我想用NA替换x>(最小值+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 }
我们可以在按"年份"进行分组后使用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))