2017-07-29 136 views
0

到目前为止,我只看到了具有两个定性(分类)变量的R交叉表。我希望看到一个使用R表示一个定性和一个定量变量的交叉表的工作示例。例如,如果我想找到质量评级(好,公平,差)和价格(10美元到19美元,20美元到29美元,30美元到39美元)之间的关系,那么我怎样才能用R来实现?任何帮助,将不胜感激。R中具有定性和定量变量的交叉表

+0

您以类别呈现价格的方式可以将其视为交叉表摘要的分类。 –

+0

谢谢Sal。但我有一个包含两列的数据集 - 价格和质量评级。价格是定量的。我是R新手,想要了解如何将$数量分组并创建一个交叉表。任何帮助,将不胜感激。 – stat77

回答

0

绝对不是最流畅的选项,而是一个将工作是

# 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) 

通过调整你可以建立自己的分类代码。输出将是这样的:

enter image description here

这是你想要的吗?

+0

所以这里的诀窍是创建一个新的列,其中包含许多NA,然后将它们重新编码为不同的价格类别。然后将这些新类别与您的质量评级变量进行交叉制表。 –

+0

狮子 - 感谢您的详细代码。是。这正是我所期待的。感谢您展示输出。 – stat77

+0

很高兴听到这个消息。不要忘记标记答案是正确的。然后其他人会更容易找到帮助! –

0

如果我理解你的问题,你想跨群体总结数值数据。

在R中有很多方法可以做到这一点,但我最喜欢的是FSA包中的函数。

其他示例可在以下链接找到:R Handbook: Descriptive Statistics

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)