[英]Crosstabs with Qualitative and Quantitative Variables in R
到目前為止,我僅看到帶有兩個定性(分類)變量的R交叉表。 我想看一個交叉表的工作示例,該表使用R來表示一個定性變量和一個定量變量。 例如,如果我想查找質量評級(好,中等,差)和價格($ 10-$ 19,$ 20-$ 29,$ 30-$ 39)之間的關系,如何使用R實現此目標? 任何幫助,將不勝感激。
如果我理解您的問題,則希望匯總各個組的數字數據。
在R中有很多方法可以做到這一點,但是我最喜歡的是FSA軟件包中的函數。
其他示例可以在以下鏈接中找到: R手冊:描述性統計 。
if(!require(FSA)){install.packages("FSA")}
Price = c(10,11,12,13,14,17,19,125,25,22,21,22)
Quality = rep(c("Good", "Fair", "Poor"),4)
Quality = factor(Quality,
order = c("Poor", "Good", "Fair"))
Data = data.frame(Price, Quality)
library(FSA)
Summarize(Price ~ Quality,
data=Data)
絕對不是最平滑的選擇,但可行的是
# Construct dataframe
quality <- rep(c("Good", "Fair", "Poor"),4)
price <- c(10,11,12,13,14,17,19,125,25,22,21,22)
price.cat <- rep(NA, length(price))
data <- data.frame(quality, price, price.cat)
# Define new factor variable for certain price categories
for (i in 1:length(price.cat)){
# Category 0$-19$
if (data[i,"price"]<=19){
data[i, "price.cat"] <- "0-19"}
# Category 20$-29$
if (data[i,"price"]>=20 & data[i,"price"]<=29){
data[i, "price.cat"] <- "20-29"}
# Category 30$-125$
if (data[i,"price"]>=30 & data[i,"price"]<=125){
data[i, "price.cat"] <- "30-125"}
}
# Crosstabulate
table(data$quality, data$price.cat)
通過調整代碼,您可以設置自己的類別。 輸出將如下所示:
這是你想要的嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.