【问题标题】:How to create separate tables by another variable如何通过另一个变量创建单独的表
【发布时间】:2019-08-20 20:49:35
【问题描述】:

好的,我想创建一个简单的 2x2 表,然后通过卡方分布对其进行分析

变量 A:2 级

变量 B:2 级

很简单。但我想根据第三个变量创建 4 个单独的表

变量 C:4 级

我知道我可以将数据拆分为 4 个单独的数据文件并执行此操作,但有没有更简单的方法可以执行此操作,并且可以创建 4 个表,然后我可以执行卡方分析开吗?

Conservatives <- table(Data$Belief, Data$Group)[Data$Party=1]

编辑:找到解决方案

with(Data,by(cbind(Belief,Group),list(factor(Party)),table))
with(Data,by(cbind(Belief,Group),list(factor(Party)),function(x){
chisq.test(table(x))
}))

H2 <- table(Data$Belief, Data$Group, Data$Party)
prop.table(H2, c(2,3))

【问题讨论】:

    标签: r


    【解决方案1】:

    这里是一个使用 mtcars 数据框的例子,结果存储在一个列表中

    with(mtcars,by(cbind(mpg,cyl),list(factor(vs)),table))
    

    编辑:存储结果就像在前面指定一个变量名一样简单。测试也是如此,您可以遍历列表并应用测试,或者

    with(mtcars,by(cbind(mpg,cyl),list(factor(vs)),function(x){
      chisq.test(table(x))
    }))
    

    【讨论】:

    • 谢谢您,但这似乎并没有将其存储为单独的表格,然后对其进行卡方分析
    • 谢谢,这当然有帮助,现在只是想了解如何在它上面做一个 prop.table!
    • @ASoutter 只需将 chisq.test 替换为 prop.table! prop.table(table(x))
    • 然后为每个参与者提供一个包含两列的比例表。而不是简单的 2x2,如果您尝试指定边距 = 2,则会以错误错误响应 Error in prop.table(, margins = 2) : used argument (margins = 2)
    • @ASoutter 没有一些数据很难说,参数是没有s的margin。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-25
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    相关资源
    最近更新 更多