我有一个个体数据框,其中包含以下不完整和重复的特征:
name <- c("A", "A", "B", "B", "B", "C", "D", "D")
age <- c(28,NA,NA,NA,NA,NA,53,NA)
birthplace <- c("city1",NA, "city2",NA,NA,NA,NA,NA)
value <- 100:107
df <- data.frame(name,age,birthplace,value)
name age birthplace value
1 A 28 city1 100
2 A NA <NA> 101
3 B NA city2 102
4 B NA <NA> 103
5 B NA <NA> 104
6 C NA <NA> 105
7 D 53 <NA> 106
8 D NA <NA> 107
由于每行的值都是唯一的,我想要用可用人员的详细信息来完成每一行,如下所示:
name age birthplace value
1 A 28 city1 100
2 A 28 city1 101
3 B NA city2 102
4 B NA city2 103
5 B NA city2 104
6 C NA <NA> 105
7 D 53 <NA> 106
8 D 53 <NA> 107
我尝试使用
library(zoo)
library(dplyr)
df <- df %>% group_by(name) %>% na.locf(na.rm=F)
但是它的效果并不好。有什么想法可以通过分组实现功能吗?