говорят, что у меня есть:
df<-data.frame(ID=c('1', '1', '1', '1', '1', '1', '1'),
int=c(NA,NA,1,2,3,2, NA),
ab=c('a', 'a', 'b', 'b', 'b', 'b', 'c'))
df
ID int ab
1 1 NA a
2 1 NA a
3 1 1 b
4 1 2 b
5 1 3 b
6 1 2 b
7 1 NA c
для всех int
значений для группы, не связанной с NA ab
, я хочу расширить эти значения на другие ab
, которые потребуют вставки дополнительных строк. Поэтому я хочу, чтобы значения 1, 2 и 3 отображались для ab == a и ab == c. Что-то вроде:
dfwant<-data.frame(ID=c('1','1', '1', '1', '1', '1', '1', '1', '1', '1'),
int=c(NA, NA,NA,1,2,3,2, NA, NA, NA),
ab=c('a','a', 'a', 'b', 'b', 'b', 'b', 'c', 'c', 'c'),
want=c(1,2,3,1,2,3,2, 1,2,3))
ID int ab want
1 1 NA a 1
2 1 NA a 2
3 1 NA a 3
4 1 1 b 1
5 1 2 b 2
6 1 3 b 3
7 1 2 b 2
8 1 NA c 1
9 1 NA c 2
10 1 NA c 3
может быть, есть другой способ, но я хочу, чтобы значения int
1, 2, 3 были связаны со всеми значениями ab
в пределах ID
. Может быть, мне нужно больше столбцов, пожалуйста, помогите
РЕДАКТИРОВАТЬ: Также хотите, чтобы он работал для разных групп с различным количеством уникальных int
:
df<-data.frame(ID=c('1', '1', '1', '1', '1', '1', '1', '2', '2', '2', '2', '2', '2', '2'),
int=c(NA,NA,1,2,3,2, NA, NA,NA,5,6,7,8, NA),
ab=c('a', 'a', 'b', 'b', 'b', 'b', 'c', 'd', 'd', 'e', 'e', 'e', 'e', 'f'))
ID int ab
1 1 NA a
2 1 NA a
3 1 1 b
4 1 2 b
5 1 3 b
6 1 2 b
7 1 NA c
8 2 NA d
9 2 NA d
10 2 5 e
11 2 6 e
12 2 7 e
13 2 8 e
14 2 NA f
ID want ab
1 1 1 a
2 1 2 a
3 1 3 a
4 1 1 b
5 1 2 b
6 1 3 b
7 1 2 b
8 1 1 c
9 1 2 c
10 1 3 c
11 2 5 d
12 2 6 d
13 2 7 d
14 2 8 d
15 2 5 e
16 2 6 e
17 2 7 e
18 2 8 e
19 2 5 f
20 2 6 f
21 2 7 f
22 2 8 f