說我有一個data.frame:前後NA後,平均的情況下更換NA,除非行開始或NA
t<-c(1,1,2,4,NA,3)
u<-c(1,3,4,6,4,2)
v<-c(2,3,4,NA,3,2)
w<-c(2,3,4,5,2,3)
x<-c(2,3,4,5,6,NA)
df<-data.frame(t,u,v,w,x)
df
t u v w x
1 1 1 2 2 2
2 1 3 3 3 3
3 2 4 4 4 4
4 4 6 NA 5 5
5 NA 4 3 2 6
6 3 2 2 3 NA
我想改變的NA,使得成爲NA由NA之前的一個值和NA之後的一個值的平均值代替。但是,如果一行以NA開始,我希望它被替換爲後面的值。當一行以NA結尾時,我希望它被NA之前的值替換。因此,我想得到以下結果:
t u v w x
1 1 1 2 2 2
2 1 3 3 3 3
3 2 4 4 4 4
4 4 6 5.5 5 5 --> NA becomes average of 6 and 5
5 4 4 3 2 6 --> NA becomes value of next case
6 3 2 2 3 3 --> NA becomes value of previous case
我有成千上萬的行,所以任何幫助都非常感謝!
這確實有竅門!你是一個真正的英雄。 –
我得到這個錯誤'na.approx(x,rule = 2)錯誤:找不到函數「na.approx」' –
'library(zoo)'please。包括那 – Sotos