总体而言,我对R和数据分析还是个新手。我有一个包含2个部分的数据集:
- 20个问题(答案采用5分制李克特量表格式)
- 8个社会人口学变量
以下是按比例缩小的数据集样本版本(仅包含20个问题中的3个和3个社会人口统计学变量),以备需要:
data.frame(Q1 = c(1, 2, 2, 1, 3, 4, 3, 5, 2, 2),
Q2 = c(2, 3, 5, 5, 4, 5, 1, 1, 5, 3),
Q3 = c(4, 4, 2, 3, 2, 1, 1, 1, 5, 5),
ageRange = c(2, 3, 1, 1, 3, 4, 4, 2, 1, 1),
education = c(1, 1, 3, 4, 6, 5, 3, 2, 1, 4),
maritalStatus = c(1, 0, 0, 0, 0, 1, 1, 0, 0, 1))
1.我需要应用卡方检验,将每个问题与所有社会人口统计学变量联系起来,总共有9个卡方结果:Q1 -年龄范围、Q1 -教育程度、Q1 -婚姻状况、Q2 -年龄范围、Q2 -教育程度、Q2 -婚姻状况、Q3 -年龄范围、Q3 -教育程度、Q3 -婚姻状况
1.我想把卡方配对的结果排列成一个数据框架或矩阵,其中列是3个社会人口统计学因素,行是3个问题,它应该看起来像这样(只需将每个0替换为每个行列对对应的p值):
data.frame(Age = c(0, 0, 0),
Education = c(0, 0, 0),
Married = c(0, 0, 0), row.names = c("Q1", "Q2", "Q3"))
我试着使用一些应用函数,但无法让它工作。
2条答案
按热度按时间wwtsj6pe1#
我们可以这样做。这相当冗长,但对于开始来说可能会有帮助:
我们在这里所做的原则上是用Q列中的每一列和其他列创建新的 Dataframe ,对于每一列,我们做同样的事情,并在最后绑定它们。
broom
包中的tidy
函数非常方便:kx1ctssn2#
我们也可以使用循环