Fill NA in R: imput NA in a column X with values from the same ID (column Y ) 对应关系
Fill NA in R: imput NA in a column X with values from same ID (column Y ) correspondance
我有这个数据集(如下所示)
db <- as.data.frame(cbind(c(1,2,2,3,3,4,4,4,5,5),c('a','b',NA,NA,'i',NA,'d',NA, NA, NA)))
我想用 ID 列 V1 中的相同对应关系填充 V2 NA。
最后我期待这个结果
db <- as.data.frame(cbind(c(1,2,2,3,3,4,4,4,5,5),c('a','b','b','i','i','d','d','d', NA, NA)))
我试图用 unique
ID 制作一个列表
db_aux <- as.data.frame(cbind(c(1,2,3,4),c('a','b','i','d')))
但我想需要一个 apply
函数来填充剩下的内容,但我不知道如何指示相应的索引。
如果有人能如此好心地指出解决这个问题的方法,我提前谢谢你。
您可以使用 tidyr
中的 fill
,方向为向上或向下。
library(tidyverse)
db %>%
group_by(V1) %>%
fill(V2, .direction = 'updown')
# A tibble: 10 x 2
# Groups: V1 [5]
V1 V2
<chr> <chr>
1 1 a
2 2 b
3 2 b
4 3 i
5 3 i
6 4 d
7 4 d
8 4 d
9 5 NA
10 5 NA
我有这个数据集(如下所示)
db <- as.data.frame(cbind(c(1,2,2,3,3,4,4,4,5,5),c('a','b',NA,NA,'i',NA,'d',NA, NA, NA)))
我想用 ID 列 V1 中的相同对应关系填充 V2 NA。 最后我期待这个结果
db <- as.data.frame(cbind(c(1,2,2,3,3,4,4,4,5,5),c('a','b','b','i','i','d','d','d', NA, NA)))
我试图用 unique
ID 制作一个列表
db_aux <- as.data.frame(cbind(c(1,2,3,4),c('a','b','i','d')))
但我想需要一个 apply
函数来填充剩下的内容,但我不知道如何指示相应的索引。
如果有人能如此好心地指出解决这个问题的方法,我提前谢谢你。
您可以使用 tidyr
中的 fill
,方向为向上或向下。
library(tidyverse)
db %>%
group_by(V1) %>%
fill(V2, .direction = 'updown')
# A tibble: 10 x 2
# Groups: V1 [5]
V1 V2
<chr> <chr>
1 1 a
2 2 b
3 2 b
4 3 i
5 3 i
6 4 d
7 4 d
8 4 d
9 5 NA
10 5 NA