你如何比较 R expss 包中相同评级对象的行方式?
How do you compare means row-wise for the same ratings object in the R expss package?
我在两个不同的对象上重复了两个评级(可靠和快速)的重复测量数据(每个调查受访者使用相同的两个评级度量对每个对象进行评级)。我想要两列,一列用于对象 1,一列用于对象 2,评级显示在两个单独的行中。
参考手册中提到使用 |用于比较两个变量的分隔符,但给出的示例是针对 mrsets 而不是 means,我不确定如何对 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()
我发现如果我先添加变量标签并使用 '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")
喜欢这种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
我在两个不同的对象上重复了两个评级(可靠和快速)的重复测量数据(每个调查受访者使用相同的两个评级度量对每个对象进行评级)。我想要两列,一列用于对象 1,一列用于对象 2,评级显示在两个单独的行中。
参考手册中提到使用 |用于比较两个变量的分隔符,但给出的示例是针对 mrsets 而不是 means,我不确定如何对 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()
我发现如果我先添加变量标签并使用 '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")
喜欢这种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