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

R 将每组的每个值与组的最小值进行比较,r,replace,compare,plyr,minimum,R,Replace,Compare,Plyr,Minimum,我有按年份分组的数据。我想用NA替换x>(最小值+2)处的每个数据。每年的最小变化量。 我想用ddply逐年提取最小值,但我不知道如何将每年的每个值与它们的特定最小值进行比较 非常感谢 New <- Ancian %>% group_by(Years) %>% mutate_if(New$Data1, ~ replace(., . > (min(., na.rm = TRUE) + 2), NA)) New% 分组单位(年)%>% 如果(新的$Data1,~r

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

非常感谢

  New <-  Ancian %>%
group_by(Years) %>%
mutate_if(New$Data1, ~  replace(., . > (min(., na.rm = TRUE) + 2),  NA))
New%
分组单位(年)%>%
如果(新的$Data1,~replace(,.>(min(,na.rm=TRUE)+2),则进行变异(na))
我试过了,但没用。。。 也尝试过在分组后执行“if”函数,但也没有结果

group_by(Years) %>%
if(New$Data1 > (min(New$Data, na.rm = TRUE) + 2)) { 
New$Data1 <- NA }
分组依据(年)%>%
如果(New$Data1>(min(New$Data,na.rm=TRUE)+2)){

新$Data1我们可以在按“年”分组后使用
mutate\u if

library(dplyr)
df1update <-  df1 %>%
    group_by(years) %>%
    mutate_if(is.numeric, ~  replace(., . > (min(., na.rm = TRUE) + 2),  NA))
库(dplyr)
DF1更新%
分组单位(年)%>%
如果(是数值,~replace(,.>(min(,na.rm=TRUE)+2),则进行变异
如果我们只需要对单个变量执行此操作

df1update <- df1 %>%
               group_by(years) %>%
               mutate(Data1 = replace(Data1, Data1 > (min(Data1, na.rm = TRUE) + 2), NA))
df1update%
分组单位(年)%>%
变异(Data1=replace(Data1,Data1>(min(Data1,na.rm=TRUE)+2),na))

Hi,您能提供一些示例数据和一些代码来说明您到目前为止所做的尝试吗?ThanksColumn(变量)是[Years,Data1,Data2],我想做这个最小值,并用年份替换每一行,只在Data1中。谢谢你的回答!问题是我只想对数据集中的一个变量做这个,而不是所有的数值变量