1
以前の(新しい計算された)2データポイントに基づいて新しいデータポイントを計算するには、dplyrをRで使用します。しかし、mutate関数は新しい値を直接更新するわけではないので(おそらくそのベクトル化された関数のため)、計算は '古い'値に基づいています。最初の 'ギャップ'は正しく埋められますが、2番目のギャップ(データが2つ欠けている)は問題を引き起こします。R dplyr以前のデータを使用
どうすればこの問題を解決できますか?
library(dplyr)
temp <- data.frame(new_MAP_top = c(68,71,70,72,NA,75,70,69,69,NA,73,75,83,NA,NA,95,98,97),
steps = c(NA,NA,NA,NA,1.50,NA,NA,NA,NA,2.00,NA,NA,NA,4.00,4.00,NA,NA,NA))
temp<-temp %>%
mutate(
prev1 = lag(new_MAP_top,1),
prev2 = lag(new_MAP_top,2),
previous_slope = prev1-prev2,
previous_slope = ifelse(is.na(previous_slope), 0, previous_slope),
new_MAP_top = ifelse(is.na(steps), new_MAP_top, round(prev1-(previous_slope-(3*steps))/4, digit=2))
)
別の 'mutate'を使用してみませんか? – Clarinetist
それから、私はそれを複数回(100レコード、98回)実行しなければならないので... –
問題を再現できるようにするには、いくつかのデータが必要です。そしてあなたを助けるための理想的な出力。 – AntoniosK