在R中将变量分组为子量表

时间:2019-06-21 00:48:16

标签: r dataframe statistics

我有一个由多个Likert响应组成的数据集,我想将它们分组为子量表,这样我就可以获得每个子量表的描述性统计信息。我怎样才能在R中做到这一点?例如,使用下表,我想组成一个由Q1,Q3和Q4数据组成的组,然后再组成一个由Q2和Q5数据组成的组,再一个由Q6,Q7和Q8数据组成的组,这样我可以在每个组上调用R函数。

+-------------+----+----+----+----+----+----+----+----+
| Participant | Q1 | Q2 | Q3 | Q4 | Q5 | Q6 | Q7 | Q8 |
+-------------+----+----+----+----+----+----+----+----+
|           1 |  3 |  4 |  4 |  3 |  4 |  3 |  3 |  4 |
|           2 |  4 |  4 |  5 |  4 |  4 |  4 |  4 |  5 |
|           3 |  4 |  4 |  5 |  4 |  3 |  5 |  2 |  4 |
|           4 |  4 |  5 |  4 |  3 |  5 |  2 |  3 |  3 |
+-------------+----+----+----+----+----+----+----+----+

1 个答案:

答案 0 :(得分:1)

您可以采用所需的所有行的列,例如(假设您的数据框位于data中)

data[, c("Q1", "Q3", "Q4")]
data[, c("Q2", "Q5")]
data[, c("Q6", "Q7", "Q8")]

要对每个数据集中的所有值取均值,而不管其列如何,可以先使用unlist将其展平:

mean(unlist(data[, c("Q1", "Q3", "Q4")]))
mean(unlist(data[, c("Q2", "Q5")]))
mean(unlist(data[, c("Q6", "Q7", "Q8")]))