2015-01-26 4 views
-1

Я пытаюсь объединить две таблицы, но получаю повторяющиеся значения.R: Повторяющиеся значения в таблице

Это мой код:

```{r,echo=FALSE} 
IdaEmpA <- data.frame(matrix(table(DadosA$idade, useNA = "always"))) 
colnames(IdaEmpA) <- "QA" 
IdaEmpA$percent <- c(round(IdaEmpA$QA[1]/sum(IdaEmpA)*100,digits=2),round(IdaEmpA$QA[2]/sum(IdaEmpA)*100,digits=2),round(IdaEmpA$QA[3]/sum(IdaEmpA)*100,digits=2),round(IdaEmpA$QA[4]/sum(IdaEmpA)*100,digits=2),round(IdaEmpA$QA[5]/sum(IdaEmpA)*100,digits=2),round(IdaEmpA$QA[6]/sum(IdaEmpA)*100,digits=2),round(IdaEmpA$QA[7]/sum(IdaEmpA)*100,digits=2)) 
IdaEmpA$percent <- sub("$","%",IdaEmpA$percent) 
IdaEmpB <- data.frame(matrix(table(DadosB$idade, useNA = "always"))) 
colnames(IdaEmpB) <- "QB" 
IdaEmpB = rbind(IdaEmpB, 20) 
IdaEmpB$percent <- c(round(IdaEmpB$QB[1]/sum(IdaEmpB)*100,digits=2),round(IdaEmpB$QB[2]/sum(IdaEmpB)*100,digits=2),round(IdaEmpB$QB[3]/sum(IdaEmpB)*100,digits=2),round(IdaEmpB$QB[4]/sum(IdaEmpB)*100,digits=2),round(IdaEmpB$QB[5]/sum(IdaEmpB)*100,digits=2),round(IdaEmpB$QB[6]/sum(IdaEmpB)*100,digits=2),round(IdaEmpB$QB[7]/sum(IdaEmpB)*100,digits=2)) 
IdaEmpB$percent <- sub("$","%",IdaEmpB$percent) 
ResIdaAB <- head(merge(x = IdaEmpA,y = IdaEmpB,by = NULL),n=7) 
NovaLinha <- c(sum(IdaEmpA$QA),"100%",sum(IdaEmpB$QB),"100%") 
ResIdaAB = rbind(ResIdaAB, NovaLinha) 
rownames(ResIdaAB) <- c("entre 18 e 25 anos","entre 26 e 35 anos","entre 36 e 45 anos","entre 46 e 55 anos","entre 56 e 65 anos","acima de 66 anos","em branco","Total") 
colnames(ResIdaAB) <- c("Frequência","Proporção","Frequência","Proporção") 
``` 

Здесь вы можете увидеть мое содержимое таблицы:

> IdaEmpA 
    QA percent 
1 11 17.74% 
2 13 20.97% 
3 15 24.19% 
4 3 4.84% 
5 18 29.03% 
6 1 1.61% 
7 1 1.61% 
> IdaEmpB 
    QB percent 
1 18 19.78% 
2 14 15.38% 
3 21 23.08% 
4 2 2.2% 
5 13 14.29% 
6 3 3.3% 
7 20 21.98% 

Здесь вы можете увидеть мой слитый табличный результат:

> ResIdaAB 
        Frequência Proporção Frequência Proporção 
entre 18 e 25 anos   11 17.74%   18 19.78% 
entre 26 e 35 anos   13 20.97%   18 19.78% 
entre 36 e 45 anos   15 24.19%   18 19.78% 
entre 46 e 55 anos   3  4.84%   18 19.78% 
entre 56 e 65 anos   18 29.03%   18 19.78% 
acima de 66 anos   1  1.61%   18 19.78% 
em branco     1  1.61%   18 19.78% 
Total      62  100%   91  100% 
> 

Как вы можете см., первый элемент (18) повторяет весь путь вниз.

Любые подсказки о том, как его решить?

ответ

0

Вы хотите связать столбцы одинаковой длины вместе без корректировки их заказа? Вы можете использовать ResIdaAB <-cbind(IdaEmpA, IdaEmpB) вместо merge.

Смежные вопросы