【发布时间】:2014-10-24 18:55:03
【问题描述】:
我有一个缺少值的数据框。如何用上一行和下一行的平均值替换 NA-s?在 (30+10)/2=20 的示例中。
id value
1 30
2 NA
3 10
4 20
【问题讨论】:
-
如果第一行或最后一行有 NA 值,你想做什么?如果您有两个(或更多)连续的 NA 值,您想做什么?
标签: r
我有一个缺少值的数据框。如何用上一行和下一行的平均值替换 NA-s?在 (30+10)/2=20 的示例中。
id value
1 30
2 NA
3 10
4 20
【问题讨论】:
标签: r
试试
library(zoo)
na.approx(df$value)
#[1] 30 20 10 20
假设data 的第一行或最后一行作为 NA 值或连续的 NA(帖子中不清楚),函数将返回
na.approx(df1$value, na.rm=FALSE)
#[1] NA 20 25 24 23 22 27 28 29 NA
df <- structure(list(id = 1:4, value = c(30L, NA, 10L, 20L)), .Names = c("id",
"value"), class = "data.frame", row.names = c(NA, -4L))
df1 <- data.frame(id=1:10, value=c(NA, 20,25, NA, NA, 22, 27, 28, 29, NA))
【讨论】: