【发布时间】:2016-08-21 10:36:24
【问题描述】:
我有一个包含一些不完整和重复特征的个体的 DF,如下所示:
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)
但是效果不是很好。按组实现功能有什么想法吗?
【问题讨论】:
-
@alistaire the question you point to ask for a dplyr solution (即使答案偏离了那个),而这里没有指定约束。
-
@MartinMorgan 问题是,但不是答案,包括 base、zoo 单独、data.table 等。答案没有功能差异; dplyr 只是问题中使用的语法。
标签: r