如何为每个丢失的一个变量插入一个新行

问题描述 投票:0回答:1
如何在

row

列编号中插入新行,同时填充其他列
NA

原始数据:

x <- c("a","a","a","a","a","a","a","a","a","b","b","b","b","b","b","b") y <- c(1,1,2,4,4,4,7,7,11,1,3,3,3,6,6,8) dat0 <- data.frame(x,y) >dat0 x y 1 a 1 2 a 1 3 a 2 4 a 4 5 a 4 6 a 4 7 a 7 8 a 7 9 a 11 10 b 1 11 b 3 12 b 3 13 b 3 14 b 6 15 b 6 16 b 8

既定的输出:

> dat1 x y 1 a 1 2 a 1 3 a 2 4 <NA> 3 5 a 4 6 a 4 7 a 4 8 <NA> 5 9 <NA> 6 10 a 7 11 a 7 12 <NA> 8 13 <NA> 9 14 <NA> 10 15 a 11 16 b 1 17 <NA> 2 18 b 3 19 b 3 20 b 3 21 <NA> 4 22 <NA> 5 23 b 6 24 b 6 25 <NA> 7 26 b 8

感谢您的帮助
    

有点长:
r numbers row na missing-data
1个回答
0
投票
library(dplyr) reframe(dat0, y=seq(min(y), max(y)), .by=x) %>% anti_join(dat0) %>% mutate(x2=x, x=NA) %>% full_join(dat0) %>% mutate(x2=coalesce(x, x2)) %>% arrange(x2, y) %>% select(-x2)

      x  y
1     a  1
2     a  1
3     a  2
4  <NA>  3
5     a  4
6     a  4
7     a  4
8  <NA>  5
9  <NA>  6
10    a  7
11    a  7
12 <NA>  8
13 <NA>  9
14 <NA> 10
15    a 11
16    b  1
17 <NA>  2
18    b  3
19    b  3
20    b  3
21 <NA>  4
22 <NA>  5
23    b  6
24    b  6
25 <NA>  7
26    b  8


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.