R:重复表中的值

时间:2015-01-26 04:32:22

标签: r markdown

我正在尝试合并两个表,但我得到了重复的值。

这是我的代码:

```{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)一直在重复。

有关如何解决问题的任何线索?

1 个答案:

答案 0 :(得分:0)

您想在不调整顺序的情况下将相等长度的列绑定在一起吗?您可以使用ResIdaAB <-cbind(IdaEmpA, IdaEmpB)代替merge.