如何比较R expss包中相同评级对象的按行比较均值?

时间:2019-05-06 10:14:26

标签: r expss

我已经对两个不同的对象重复了具有两个评级(可靠和快速)的重复测量数据(每个调查受访者对每个对象都使用相同的两个评级度量进行评级)。我想有两列,一列用于对象1,一列用于对象2,评分显示在两行中。

在参考手册中,有使用|的参考。分隔符来比较两个变量,但是给出的示例不是针对mrsets的意思,我不确定如何对Means进行同样的操作并将它们保存在单独的数据帧列中。

在下面的代码中,问题在于它们没有并排放置(以进行比较),而是彼此堆叠。

#library
library(expss)
library(magrittr)

#dummy data
set.seed(9)
df <- data.frame(
q1_reliable=sample(c(1,5), 100, replace = TRUE),
q1_fast=sample(c(1,5), 100, replace = TRUE),
q2_reliable=sample(c(1,5), 100, replace = TRUE),
q2_fast=sample(c(1,5), 100, replace = TRUE))


#table 
df %>%
tab_cells(q1_reliable,q1_fast) %>%
tab_stat_mean(label = "")  %>%
tab_cells(q2_reliable,q2_fast) %>%
tab_stat_mean(label = "")  %>%
tab_pivot()

2 个答案:

答案 0 :(得分:1)

我发现,如果我先添加变量标签并使用'tab_pivot(stat_position =“ inside_columns”)',就可以解决问题。

#library
library(expss)
library(magrittr)

#dummy data
set.seed(9)
df <- data.frame(
q1_reliable=sample(c(1,5), 100, replace = TRUE),
q1_fast=sample(c(1,5), 100, replace = TRUE),
q2_reliable=sample(c(1,5), 100, replace = TRUE),
q2_fast=sample(c(1,5), 100, replace = TRUE)
)

#labels
df = apply_labels(df,
q1_reliable = "reliable",
q1_fast = "fast",
q2_reliable = "reliable",
q2_fast = "fast")

#table
df %>%
tab_cells(q1_reliable,q1_fast) %>%
tab_stat_mean(label = "")  %>%
tab_cells(q2_reliable,q2_fast) %>%
tab_stat_mean(label = "")  %>%
tab_pivot(stat_position = "inside_columns")

答案 1 :(得分:0)

喜欢这种data.table方法吗?

library(data.table)
#melt first
DT <- melt( setDT(df), 
        measure.vars = patterns( reliable = "reliable", fast = "fast"), 
        variable.name = "q")
#then summarise
DT[, lapply(.SD, mean), by = .(q), .SDcols = c("reliable", "fast")]
   q reliable fast
1: 1     3.04 2.96
2: 2     2.92 2.96