【问题标题】:How do you group factor levels in R?你如何在 R 中对因子水平进行分组?
【发布时间】:2020-06-06 14:45:10
【问题描述】:

我的数据集中有一列包含从非常可能到不太可能的李克特量表响应。我想绑定一个新列,该列对多个因子水平进行了分组。例如,新列将只有两个因子水平:一个由非常可能、很可能组成,另一列包含不太可能和不太可能。我正计划将新列变成数字并计算一些统计测试。我希望最后能做这样的事情:

Grouped_Levels <- as.numeric(Grouped_Levels)
mydata <- cbind(mydata, Grouped_Levels) 

Statistical_Testing.aov <- aov(Grouped_Levels ~ Question, data = mydata)

【问题讨论】:

  • 这能回答你的问题吗? How to group factor levels in R
  • @mnm 这可能是真的,但这是一个老问题,因此可能令人困惑,因为失败的方法确实有效。
  • @jay.sf 我不认为将给定的 Q 标记为旧的或新的有什么意义,尤其是当上下文中的早期 Q 和当前 Q 在语法上相同时。另外,你指的也是哪个failing method
  • @mnm "old" 是合适的,因为您的链接问题的问题可能无法再用较新的 R 版本重现,请在此处使用我的评论查看此问题的较新答案:stackoverflow.com/a/60316880/6574038跨度>
  • @jay.sf 我在您刚刚发布在链接 Q 上的评论中看到了您的观点。我是否应该不认为它(阅读您对链接 Q 的评论)作为补充您的强制理由在这里回答,以及否定接受这个 Q 确实是重复的。我的意思是,您对链接 Q 的评论是 2 小时前发布的。我认为它是你在这个 Q 中的回答的混合物。

标签: r


【解决方案1】:

可以通过在列表中分配分组来轻松完成分组因子级别。这是一个玩具数据的例子:

levels(mydata$value)
# [1] "not likely"      "slightly likely" "likely"          "very likely"    

levels(mydata$value) <- list("unlikely"=c("not likely", "slightly likely"),
                           "likely"=c("likely", "very likely"))
levels(mydata$value)
# [1] "unlikely" "likely"  

之后你可能想要这样做:

(Statistical_Testing.aov <- aov(as.integer(value) ~ question, data = mydata))
# Call:
#   aov(formula = as.integer(value) ~ question, data = mydata)
# 
# Terms:
#   question Residuals
# Sum of Squares      0.18      5.82
# Deg. of Freedom        1        23
# 
# Residual standard error: 0.5030343
# Estimated effects may be unbalanced

(Statistical_Testing.anova <- anova(Statistical_Testing.aov))
# Analysis of Variance Table
# 
# Response: as.integer(value)
#           Df Sum Sq Mean Sq F value Pr(>F)
# question   1   0.18 0.18000  0.7113 0.4077
# Residuals 23   5.82 0.25304

玩具数据:

set.seed(42)
mydata <- transform(expand.grid(question=1:5, id=1:5),
                    value=factor(sample(1:4, 25, rep=T), 
                                 labels=c("not likely", "slightly likely", 
                                          "likely", "very likely")))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    相关资源
    最近更新 更多