Мне нужно создать таблицу из исходной таблицы (оба ниже).Создайте новую дублируемую таблицу из другого, добавив новые значения из оригиналов, используя R
В исходной таблице мы имеем семейства A и B, а члены каждого семейства обозначены столбцом PESS. Члены каждой семьи, которые являются бенефициарами, отмечены номером 1 в колонке BEN. Из этой таблицы мне нужно создать новую таблицу, в которой у вас должно быть еще 2 столбца. Взяв семью A в качестве примера, члены 1 и 4 являются бенефициарами. Затем семейство A должно быть удвоено на две группы с одним бенефициаром за раз (столбец I_BPC_FAM2). Столбец FAM2 указывает группы.
Приведенный ниже код, я генерирую новую таблицу, однако отсутствует колонка I_BPC_FAM2. Проблема должна быть решена в R.
Возможно ли завершить этот код, чтобы попасть в итоговый стол?
library(tidyverse)
tabela<-data.frame(FAM=c("A","A","A","A","B","B","B"), PESS=c(1,2,3,4,1,2,3),BEN=c(1,0,0,1,0,0,1))
tabela1<- summarise(group_by(tabela,FAM),contador=sum(BEN),cont=n()) #faz a tabela com contadores
tab2<-NULL
for(i in 1:length(tabela1$FAM)){
x<-as.numeric(tabela1[i,"contador"])
j<-as.numeric(tabela1[i,"cont"])
for(l in 1:x){
for(k in 1:j){
tab<-data.frame(tabela1[i,"FAM"],PESS=as.numeric(k),FAM2=as.numeric(l))
tab2<-rbind(tab2,tab)
final<-merge(tab2,tabela,by=c("FAM","PESS"))
final <- final[order(final$FAM, final$FAM2), ]
}
}
}
Оригинальная таблица:
> tabela
FAM PESS BEN
1 A 1 1
2 A 2 0
3 A 3 0
4 A 4 1
5 B 1 0
6 B 2 0
7 B 3 1
Таблица порождена мой код
> final
FAM PESS FAM2 BEN
1 A 1 1 1
3 A 2 1 0
5 A 3 1 0
7 A 4 1 1
2 A 1 2 1
4 A 2 2 0
6 A 3 2 0
8 A 4 2 1
9 B 1 1 0
10 B 2 1 0
11 B 3 1 1
Таблица Мне нужно создать
FAM PESS FAM2 BEN I_BPC_FAM2
1 A 1 1 1 1
3 A 2 1 0 0
5 A 3 1 0 0
7 A 4 1 1 0
2 A 1 2 1 0
4 A 2 2 0 0
6 A 3 2 0 0
8 A 4 2 1 1
9 B 1 1 0 0
10 B 2 1 0 0
11 B 3 1 1 1
Спасибо!