2017-04-10 55 views
1

我需要将2行和2列变量从crosstab()(Package:descr)生成的高维频率表从R导出到excel而不改变图案/格式。具体来说,我想在excel中输出相同的输出,因为在R控制台上显示使用crosstab()生成的高维表。在此先感谢...如何将表/交叉表从r保存为excel,同时保持格式为

install.packages("descr") 
library(descr) 
ID <- seq(1:177) 
Age <- sample(c("0-15", "16-29", "30-44", "45-64", "65+"), 177, replace = TRUE) 
Sex <- sample(c("Male", "Female"), 177, replace = TRUE) 
Country <- sample(c("England", "Wales", "Scotland", "N. Ireland"), 177, replace = TRUE) 
Health <- sample(c("Poor", "Average", "Good"), 177, replace = TRUE) 
Survey <- data.frame(Age, Sex, Country, Health) 
head(Survey) 
crosstab_1 <- crosstab(Survey, row.vars = c("Age", "Sex"), col.vars = c("Health", "Country"), 
    type = "f", addmargins = FALSE) 
print(crosstab_1) 

我需要导出到Excel以交叉表格式,因为它是在控制台中出来,通过打印(crosstab_1)功能。

+0

代码如下: – Biswa

回答

0

我得到一个错误与代码:

Error in crosstab(Survey, row.vars = c("Age", "Sex"), col.vars = c("Health", : 
    The 'indep' (independent variable) is missing. Please, consider using either CrossTable() or freq(). 

我不是那种包,以便决定不搞清楚什么导致了错误的用户。所以我决定展示我会做什么来实现我认为你的目的。 base-R中的table函数就像SPSS中的“crosstabs”函数。它产生一个列联表,矩阵状物体:

with(Survey, table(interaction(Age, Sex), interaction(Health, Country))) 
#----- 

       Average.England Good.England Poor.England 
    0-15.Female    0   0   2 
    16-29.Female    1   3   4 
    30-44.Female    2   3   0 
    45-64.Female    1   1   0 
    65+.Female     2   0   4 
    0-15.Male     1   3   1 
    16-29.Male     0   2   1 
    30-44.Male     2   3   1 
    45-64.Male     2   2   0 
    65+.Male     3   3   1 

       Average.N. Ireland Good.N. Ireland Poor.N. Ireland 
    0-15.Female     1    2    0 
    16-29.Female     1    0    1 
    30-44.Female     2    0    1 
    45-64.Female     1    1    2 

剪断的输出的剩余部分,因为它显然不适合于易加工用Excel(或在我的情况的OpenOffice)

现在展开查看控制台和重复:

​​

大部分数据是不显示的兴田右侧可见的,但是这并不重要。现在用光标鼠标,复制选项将其粘贴到电子表格的空白区域。应该出现的是一个对话框,它允许指定这是固定格式的数据,并允许您轻松调整列分隔符。拨动列并点击确定,你就完成了。

您也可以使用capture.outputsink将此输出发送到文件。

+0

谢谢您的有用答案先生。 crosstab()函数与其他软件包的组合一起运行。从本教程中获得:http://rstudio-pubs-static.s3.amazonaws.com/6975_c4943349b6174f448104a5513fed59a9.html。顺便说一下,我有兴趣将输出从r导出到excel而无需复制粘贴。 Sink选项非常有用。谢谢... – Biswa

+0

如果这回答了这个问题,那么复选标记将避免它保留在“未答复队列”中。 –

+0

页面获得'crosstab'函数:'source(“http://pcwww.liv.ac.uk/~william/R/crosstab.r”)'。信用被赋予catspec包中的'ctab()'函数。预计还会获得关联的'print.crosstab'函数,因为结果会被赋予一类“交叉表”。我认为这是建立AWS实例的一种非常不安全的方法,因为您真的不知道您从外部引入的代码中会包含什么内容。 –

相关问题