R 用序列替换值之间的NAs
我有一个带有NA值的数据框。我想用NAs前后的值之间的序列替换这些NAs 考虑以下示例:R 用序列替换值之间的NAs,r,dataframe,na,missing-data,R,Dataframe,Na,Missing Data,我有一个带有NA值的数据框。我想用NAs前后的值之间的序列替换这些NAs 考虑以下示例: # Example data df <- data.frame(x1 = c(5, NA, NA, 10, NA), x2 = c(NA, 2, NA, - 10, NA), x3 = c(10, NA, 15, NA, 20)) df # x1 x2 x3 # 5 NA 10 # NA 2 NA # NA NA 15 #
# Example data
df <- data.frame(x1 = c(5, NA, NA, 10, NA),
x2 = c(NA, 2, NA, - 10, NA),
x3 = c(10, NA, 15, NA, 20))
df
# x1 x2 x3
# 5 NA 10
# NA 2 NA
# NA NA 15
# 10 -10 NA
# NA NA 20
如何以自动化的方式在两个值之间替换NAs?zoo中的na.appro函数可以非常轻松地执行此插值
dfx1x2x3
#>1 5 NA 10
#>2 NA 2 NA
#>3 NA NA 15
#>4 10-10 NA
#>5 NA NA 20
动物园:大约不到(df)
#>x1x2x3
#>[1,]5.000000 NA 10.0
#> [2,] 6.666667 2 12.5
#> [3,] 8.333333 -4 15.0
#> [4,] 10.000000 -10 17.5
#>[5,]NA-NA 20.0
由(v0.2.0)于2019-02-10创建。动物园中的na.approx函数非常容易进行插值
dfx1x2x3
#>1 5 NA 10
#>2 NA 2 NA
#>3 NA NA 15
#>4 10-10 NA
#>5 NA NA 20
动物园:大约不到(df)
#>x1x2x3
#>[1,]5.000000 NA 10.0
#> [2,] 6.666667 2 12.5
#> [3,] 8.333333 -4 15.0
#> [4,] 10.000000 -10 17.5
#>[5,]NA-NA 20.0
由(v0.2.0)于2019年2月10日创建。以下是带有imputeTS包的解决方案:
#示例数据
df这是一个带有imputeTS包的解决方案:
#示例数据
df感谢您提供的替代解决方案!感谢您的替代解决方案!
# Expected output
# x1 x2 x3
# 5 NA 10
# 6.666667 2 12.5
# 8.333333 -4 15
# 10 -10 17.5
# NA NA 20
# Example data
df <- data.frame(x1 = c(5, NA, NA, 10, NA),
x2 = c(NA, 2, NA, - 10, NA),
x3 = c(10, NA, 15, NA, 20))
library("imputeTS")
na.interpolation(df, option = "linear)