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
感谢您的帮助
有点长:
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