给定以下数据框:
df1 <- data.frame(Company = c('A','B','C','D','E'), `X1980` = c(NA, 5, 3, 8, 13),
`X1981` = c(20, NA, 23, 11, 29),
`X1982` = c(NA, 32, NA, 41, 42),
`X1983` = c(45, 47, 53, 58, NA))
我想通过对行进行插值来用值替换 NA,从而产生以下数据框:
Company 1980 1981 1982 1983
A NA 20 32,5 45
B 5 18,5 32 47
C 3 23 38 53
D 8 11 41 58
E 13 29 42 NA
我尝试将 na.apporox 与 apply 结合使用:
df1[-1] <- t(apply(df1[-1], 1, FUN = na.approx))
但这会导致以下错误:
Fehler in h(simpleError(msg, call)) :
Fehler bei der Auswertung des Argumentes 'x' bei der Methodenauswahl für Funktion 't': dim(X) muss positive Länge haben
提前感谢您的帮助!!!
编辑:我忘了定义如何在 na.approx 函数中处理 NA。
df1[-1] <- t(apply(df1[-1], 1, na.approx, na.rm=FALSE))
这会产生所需的输出!