重构由R

时间:2017-12-07 13:48:24

标签: r dplyr xlconnect

我使用dplyr创建了一个因子,然后使用此因子重新排列了许多变量。 我试图导出到excel文件,但XLConnect不会将因子识别为列。

我该如何解决这个问题?

这里是代码:


不同因素:

PorIdade <- dplyr::mutate(diagnostica,
                idade_factor = factor(diagnostica$idadegrupo, 
                                    levels = c(1, 2, 3), 
                                    labels = paste(c("60-69", "70-79", "80 e mais"))),
                idade_character = paste(diagnostica$idadegrupo, "Idade") )


创建一些表格

sex <- with(PorIdade, table(diagnostica$sexo ,             idade_factor))
cor <- with(PorIdade, table(diagnostica$cor ,              idade_factor))

我在控制台上得到了这个:

enter image description here


使用XLConnect

Wb <- loadWorkbook("results.xlsx", create=TRUE)
createSheet( Wb,"newSheet")

writeWorksheet(object=Wb, data=sex, rownames=NULL, header=TRUE, sheet="newSheet")
  appendWorksheet(object=Wb, data=cor, rownames=NULL, header=TRUE, sheet="newSheet")
saveWorkbook(Wb,file="resuts.xlsx")

现在是我想要解决的问题。 使用此代码,我可以在Excel中获得此结果:

Var1    |idade_factor   |Freq
Homem   |60-69          |34
Mulher  |60-69          |42
Homem   |70-79          |31
Mulher  |70-79          |26
Homem   |80 e mais      |8
Mulher  |80 e mais      |9
Var1    |idade_factor   |Freq
Amarela |60-69          |7
Branca  |60-69          |53
Negra   |60-69          |12
Parda   |60-69          |4
Amarela |70-79          |1
Branca  |70-79          |34
Negra   |70-79          |16
Parda   |70-79          |6
Amarela |80 e mais      |1
Branca  |80 e mais      |7
Negra   |80 e mais      |5
Parda   |80 e mais      |4

我很想得到一些像这样的结果:

            60-69|  70-79  | 80 e mais
Homem  |    34   |  31     | 8
Mulher |    42   |  26     | 9

Amarela|    7    |  1      | 1
Branca |    53   |  34     | 7
Negra  |    12   |  16     | 5
Parda  |    4    |  6      | 4

我知道我可以在R上正确读取,但我想改进.xlsx输出,因为我会使用更多变量

0 个答案:

没有答案