2017-04-10 88 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實例的一種非常不安全的方法,因爲您真的不知道您從外部引入的代碼中會包含什麼內容。 –

相關問題