3

こんにちは、クロステーブルを作成する必要がありました。いろいろ方法があることがわかりましたが、表をExcelのピボットテーブルそっくりにする機能がありました。それは完全に機能しますが、「クロステーブル」クラスであるという事実を考えると、csvまたはExcelにエクスポートできないため、強制することはできません。

どうすればそれをcsvにエクスポートできますか?

この例を参照してください

#This way you activate the library
source("http://pcwww.liv.ac.uk/~william/R/crosstab.r")

# Creating the database

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)


#It resulted in this

     Age    Sex    Country  Health
## 1 16-29   Male   Scotland    Good
## 2   65+ Female      Wales Average
## 3  0-15   Male      Wales    Poor
## 4 16-29   Male N. Ireland Average
## 5 30-44 Female      Wales    Good
## 6 30-44 Female      Wales Average

しかし、私は年齢と性別のクロステーブルが欲しかった

# Frequency count
ct <- crosstab(Survey, row.vars = "Age", col.vars = "Sex", type = "f")

#getting this

##       Sex Female Male Sum
## Age                      
## 0-15          19   20  39
## 16-29         11   14  25
## 30-44         23   17  40
## 45-64         15   19  34
## 65+           20   19  39
## Sum           88   89 177

そして最後に、すべてが完璧に機能していると、次のメッセージが表示されます

 # Save file as csv
write.csv(ct,"ct.csv")

Error in as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors) : 
cannot coerce class ""crosstab"" to a data.frame

この機能の詳細については、次の Web サイトを参照してください。

http://rstudio-pubs-static.s3.amazonaws.com/6975_c4943349b6174f448104a5513fed59a9.html

4

2 に答える 2

1

write.csv: 書き込まれるオブジェクト、できれば行列またはデータ フレーム。そうでない場合は、x をデータ フレームに強制しようとします。したがって、1つの解決策は次のとおりです。

write.csv(ct$table,"ct.csv")
于 2016-08-04T20:04:28.763 に答える