我有一個df(請參考下文),我需要根據df中的一列創建一個標誌。falg應該基於預定義的值。在R中創建一個最接近列的標誌
Year Month Budget percentage_change
2014 Feb $ 2,285,940 61.993
2014 Feb $ 2,294,280 62.219
2014 Feb $ 2,356,192 63.898
2014 Feb $ 2,356,192 63.898
2014 Feb $ 2,359,000 64.000
2014 Feb $ 2,359,255 65.000
2014 Feb $ 2,359,372 70.000
2015 Feb $ 2,465,829 68.905
2015 Feb $ 2,475,187 68.912
2015 Feb $ 2,475,596 68.918
2015 Feb $ 2,480,543 69.472
2015 Feb $ 2,499,953 69.472
2015 Feb $ 2,500,021 69.702
2015 Feb $ 2,503,888 69.787
2015 Feb $ 2,503,888 70.041
所需的輸出我找下面
Year Month Budget percentage_change Flag
2014 Feb $ 2,285,940 61.993 0
2014 Feb $ 2,294,280 62.219 0
2014 Feb $ 2,356,192 63.898 0
2014 Feb $ 2,356,192 63.898 0
2014 Feb $ 2,359,000 64.000 0
2014 Feb $ 2,359,255 65.000 0
2014 Feb $ 2,359,372 70.000 1
2015 Feb $ 2,465,829 68.905 0
2015 Feb $ 2,475,187 68.912 0
2015 Feb $ 2,475,596 68.918 0
2015 Feb $ 2,480,543 69.472 0
2015 Feb $ 2,499,953 69.472 0
2015 Feb $ 2,500,021 69.702 0
2015 Feb $ 2,503,888 69.787 0
2015 Feb $ 2,503,888 70.041 1
提到當創建標誌是基於值,其中的百分比變化列值最接近71
這個問題我有數據很長,百分比在基於Year和Month的每個確定的Inverval後都會重複。
謝謝@ bouncyball.This很少除了與as.numeric代碼中的if else .The之前爲我工作最終的代碼看起來像 mydf <- mydf %>% group_by(Year,Month)%>% mutate(Flag = as.numeric(ifelse(abs(percentage_change - 71)== min(abs(percentage_change - 71)), 0))) 它忽略了錯誤#incompatible類型,期望一個數值向量以供mutate使用。 –