將缺失值(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
- 3 回答
- 0 關注
- 777 瀏覽
添加回答
舉報
0/150
提交
取消