0
我正在試圖弄清楚這樣做的最簡單方法。 我可以有各種數據表的長度,我想用連接數據點的斜率自動填充缺失的值。我只是不確定以編程方式執行此操作的最簡單方法。使用繪圖/數據點的斜率計算給定X的Y值
我想有一些這樣的事情,我可以做,但我不知道如何應用這個,或者如果有一個簡單的循環/ dplyr /其他功能,解決這個問題。
基本上如果有一個線條圖,每個點的位置是哪條線會越過該X /索引值?這就是我想要的。
lm(y~index)$coef[[2]] * index + lm(y~index)$coef[[1]]
兩個例子:
df = data.frame(index = 1:6, y = c(10,NA,20,NA,NA,2)
df2 = data.frame(index = 1:8, y=c(NA,NA,2,NA,NA,NA,NA,18)
solutions:
df = data.frame(index = 1:6, y = c(10,15, 20,14,8,2)#slope of 5 and then -6
df2 = data.frame(index = 1:8, y=c(NA,NA,2,5.2,8.4,11.6,14.8,18) #slope of 3.2
在df2的情況下,如果你用'n'參數來做'NA'值,也會插入'NA'值。更好的方法是用'which(in.na(df2 $ y))'指定所需的插值點' –
然後,將點保存在'interp.pts'中,將這些值替換爲:'df2 $ y [ interp.pts] < - approx(df2 $ index,df2 $ y,xout = interp.pts)$ y' –
@EdwardCarney提供了一個很好的觀點,但即使指定了哪些點,仍然存在端點插值的問題專門插入。 – shayaa