【问题标题】:Crosstabs with Qualitative and Quantitative Variables in RR中具有定性和定量变量的交叉表
【发布时间】:2018-01-05 11:14:59
【问题描述】:

到目前为止,我只见过带有两个定性(分类)变量的 R 交叉表。我希望看到一个使用 R 表示一个定性变量和一个定量变量的交叉表的工作示例。例如,如果我想找到质量评级(好、一般、差)和价格(10 美元 - 19 美元、20 美元 - 29 美元、30 美元 - 39 美元)之间的关系,我如何使用 R 实现这一点?任何帮助将不胜感激。

【问题讨论】:

  • 您在类别中显示价格的方式,您可以将其视为交叉表摘要的类别。
  • 谢谢萨尔。但我有一个包含两列的数据集 - 价格和质量评级。价格是定量的。我是 R 新手,正在尝试了解如何对 $ 金额进行分组并创建交叉表。任何帮助将不胜感激。

标签: r


【解决方案1】:

如果我理解您的问题,您希望跨组汇总数字数据。

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

【讨论】:

    【解决方案2】:

    绝对不是最流畅的选择,但可行的是

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

    通过调整代码,您可以设置自己的类别。输出将如下所示:

    这是你想要的吗?

    【讨论】:

    • 所以这里的诀窍是创建一个充满 NA 的新列,然后将其重新编码为不同的价格类别。然后将这些新类别与您的质量评级变量进行交叉制表。
    • Lion - 感谢您提供详细的代码。是的。这正是我一直在寻找的。感谢您显示输出。
    • 很高兴听到这个消息。不要忘记将答案标记为正确。然后其他人会更容易找到帮助!
    猜你喜欢
    • 2012-10-10
    • 2014-09-29
    • 2021-09-21
    • 1970-01-01
    • 2020-07-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 2020-05-20
    相关资源
    最近更新 更多