R 如何替换因子NA';与上面单元格的级别相同

R 如何替换因子NA';与上面单元格的级别相同,r,R,我试图用上面单元格的值替换factor列中的NA值。这将是伟大的,有一个整洁的诗句的方法,但它没有太多的问题,如果它不是。 我有如下数据: data <- tibble(site = as.factor(c("A", "A", NA, "B","B", NA,"C", NA, "C")), value = c(1, 2, NA, 1, 2,

我试图用上面单元格的值替换factor列中的NA值。这将是伟大的,有一个整洁的诗句的方法,但它没有太多的问题,如果它不是。 我有如下数据:

data <- tibble(site = as.factor(c("A", "A", NA, "B","B", NA,"C", NA, "C")),
               value = c(1, 2, NA, 1, 2, NA, 1, NA, 2))  
谢谢

tidyr
尝试
fill()

library(tidyverse)
#Code
data <- data %>% fill(site)
库(tidyverse)
#代码
数据填充百分比(站点)
输出:

# A tibble: 9 x 2
  site  value
  <fct> <dbl>
1 A         1
2 A         2
3 A        NA
4 B         1
5 B         2
6 B        NA
7 C         1
8 C        NA
9 C         2
#一个tible:9 x 2
场地价值
1 A 1
2 A 2
3 A NA
4 B 1
5 B 2
6b不适用
7 C 1
8c-NA
9 C 2

带有
na.locf的选项

library(zoo)
data$state <- na.locf0(data$site)
图书馆(动物园)

数据$state使用
zoo
包,您可以执行
mutate(数据,site=na.locf(site))
# A tibble: 9 x 2
  site  value
  <fct> <dbl>
1 A         1
2 A         2
3 A        NA
4 B         1
5 B         2
6 B        NA
7 C         1
8 C        NA
9 C         2
library(zoo)
data$state <- na.locf0(data$site)