Как вы сравниваете средние значения для одного и того же объекта оценок в пакете R expss? - PullRequest
1 голос
/ 06 мая 2019

Я повторил данные измерений с двумя оценками (надежными и быстрыми), повторенными для двух разных объектов (каждый респондент оценивает каждый объект, используя одни и те же две оценки оценок).Я хотел бы иметь два столбца, один для объекта 1 и один для объекта 2, с оценками, отображаемыми в двух отдельных строках.

В справочном руководстве есть ссылка на использование |разделитель для сравнения двух переменных, но приведенный пример для mrsets не означает, я не уверен, как сделать то же самое со средствами и сохранить их в отдельных столбцах фрейма данных.

В приведенном ниже коде проблемазаключается в том, что вместо размещения средств рядом (для сравнения) они накладываются друг на друга.

#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 ]

1 голос
/ 06 мая 2019

Я обнаружил, что если я сначала добавлю метки переменных и использую '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")
0 голосов
/ 06 мая 2019

Как этот подход 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
...