为了账号安全,请及时绑定邮箱和手机立即绑定

将缺失值(Na)按组替换为最近的非NA值。

将缺失值(Na)按组替换为最近的非NA值。

慕沐林林 2019-07-10 16:53:24
将缺失值(Na)按组替换为最近的非NA值。我想用dplyr解决以下问题。较佳的窗口功能之一。我有一个数据框架,里面有房子和买价。以下是一个例子:houseID      year    price 1            1995    NA1            1996    1001            1997    NA1            1998    1201            1999    NA2            1995    NA2            1996    NA2            1997    NA2            1998    302            1999    NA3            1995    NA3            1996    443            1997    NA3            1998    NA3            1999    NA我想做一个这样的数据框架:houseID      year    price 1            1995    NA1            1996    1001            1997    1001            1998    1201            1999    1202            1995    NA2            1996    NA2            1997    NA2            1998    302            1999    303            1995    NA3            1996    443            1997    443            1998    443            1999    44以下是一些格式正确的数据:# Number of housesN = 15# Data framedf = data.frame(houseID = rep(1:N,each=10), year=1995:2004, price =ifelse(runif(10*N)>0.15, NA,exp(rnorm(10*N))))有办法吗?
查看完整描述

3 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

tidyr::fill现在让这件愚蠢的事情变得简单起来:


library(dplyr)

library(tidyr)

# or library(tidyverse)


df %>% group_by(houseID) %>% fill(price)

# Source: local data frame [15 x 3]

# Groups: houseID [3]

#    houseID  year price

#      (int) (int) (int)

# 1        1  1995    NA

# 2        1  1996   100

# 3        1  1997   100

# 4        1  1998   120

# 5        1  1999   120

# 6        2  1995    NA

# 7        2  1996    NA

# 8        2  1997    NA

# 9        2  1998    30

# 10       2  1999    30

# 11       3  1995    NA

# 12       3  1996    44

# 13       3  1997    44

# 14       3  1998    44

# 15       3  1999    44


查看完整回答
反对 回复 2019-07-10
  • 3 回答
  • 0 关注
  • 700 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信