R 用列表中的字符填充NA

R 用列表中的字符填充NA,r,lapply,tidyr,R,Lapply,Tidyr,我有一些数据如下: library(tidyr) library(data.table) thisdata <- data.frame(numbers = c(1,3,4,5,6,1,2,4,5,6) ,letters = c('A','A','A','A','A','B','B','B','B','B')) otherdata <- data.frame(numbers = c(1,2,3,4,5,6)) library(tidyr

我有一些数据如下:

library(tidyr)
library(data.table)
thisdata <-  data.frame(numbers = c(1,3,4,5,6,1,2,4,5,6)
                     ,letters = c('A','A','A','A','A','B','B','B','B','B'))

otherdata <-  data.frame(numbers = c(1,2,3,4,5,6))
library(tidyr)
库(数据表)

此数据
fill
需要一个数据框作为第一个参数,请使用
magrittr
管道尝试
fill(x,字母)
x%>%fill(字母)

out3 <- lapply(out2,function(x) fill(x, letters))

out3
#$A
#  numbers letters
#1       1       A
#2       2       A
#3       3       A
#4       4       A
#5       5       A
#6       6       A

#$B
#  numbers letters
#1       1       B
#2       2       B
#3       3       B
#4       4       B
#5       5       B
#6       6       B

fill
需要一个数据帧作为第一个参数,请尝试使用
magrittr
管道
fill(x,字母)
x%>%fill(字母)

out3 <- lapply(out2,function(x) fill(x, letters))

out3
#$A
#  numbers letters
#1       1       A
#2       2       A
#3       3       A
#4       4       A
#5       5       A
#6       6       A

#$B
#  numbers letters
#1       1       B
#2       2       B
#3       3       B
#4       4       B
#5       5       B
#6       6       B
out4 <- rbindlist(out2)

out5 <- out4 %>% 
  fill(letters) %>% #default direction down
  fill(letters,.direction = "up")

   numbers letters
 1:       1       A
 2:       2       A
 3:       3       A
 4:       4       A
 5:       5       A
 6:       6       A
 7:       1       B
 8:       2       B
 9:       3       B
10:       4       B
11:       5       B
12:       6       B
out3 <- lapply(out2,function(x) fill(x, letters))

out3
#$A
#  numbers letters
#1       1       A
#2       2       A
#3       3       A
#4       4       A
#5       5       A
#6       6       A

#$B
#  numbers letters
#1       1       B
#2       2       B
#3       3       B
#4       4       B
#5       5       B
#6       6       B
thisdata %>% 
    complete(numbers = otherdata$numbers, letters) %>% 
    arrange(letters)

# A tibble: 12 x 2
#   numbers letters
#     <dbl>  <fctr>
# 1       1       A
# 2       2       A
# 3       3       A
# 4       4       A
# 5       5       A
# 6       6       A
# 7       1       B
# 8       2       B
# 9       3       B
#10       4       B
#11       5       B
#12       6       B