R:table 中的重复值
R: Repeating values in table
我正在尝试合并两个 table,但得到了重复的值。
这是我的代码:
```{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")
```
在这里你可以看到我的table内容:
> 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%
在这里你可以看到我合并的 table 结果:
> 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) 一直在重复。
关于如何解决它的任何线索?
您想将等长的列绑定在一起而不调整它们的顺序?您可以使用 ResIdaAB <-cbind(IdaEmpA, IdaEmpB)
而不是 merge.
我正在尝试合并两个 table,但得到了重复的值。
这是我的代码:
```{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")
```
在这里你可以看到我的table内容:
> 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%
在这里你可以看到我合并的 table 结果:
> 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) 一直在重复。
关于如何解决它的任何线索?
您想将等长的列绑定在一起而不调整它们的顺序?您可以使用 ResIdaAB <-cbind(IdaEmpA, IdaEmpB)
而不是 merge.