У меня есть фрейм данных, который включает участников из двух групп, а также несколько числовых значений с их стандартизированными результатами. Я рассчитываю рассчитать коэновское число d и число студентов для каждой переменной.
(Я знаю, что проведение нескольких t-тестов не является хорошей практикой, однако в этом контексте все в порядке).
Я использую функцию cohen.d
в пакете psych
, однако всякий раз, когда я пытаюсь вызвать функцию, я получаю следующую ошибку
Error in psych::cohen.d(cohen_df, cohen_df$LOWvsHigh, alpha = 0.05, :
object 'group.in' not found
Данные:
set.seed(24)
cohen_df <- data.frame(
LOWvsHigh = sample(0:1, 24, replace = TRUE),
v1 = rnorm(24),
v2 = rnorm(24),
v3 = rnorm(24)
)
Затем я указываю этот набор данных вместе с переменной группировки cohen_df$LOWvsHigh
в функции:
cohen.d(cohen_df, cohen_df$LOWvsHigh, alpha = 0.05, std = TRUE, dictionary = NULL)
Однако я получаю указанную выше ошибку вместе со следующими дополнительными предупреждениями:
In addition: Warning messages:
1: In cor(diffs, use = use, method = method) :
the standard deviation is zero
2: In cov2cor(xvals$rwg) :
diag(.) had 0 or NA entries; non-finite result is doubtful
3: In cor(new.data[, (nvar + 1):ncol(new.data)], diffs, use = "pairwise", :
the standard deviation is zero
При более внимательном рассмотрении кода в функции кажется, что моя группирующая переменная не прошла первый тест, так как она не имеет длины 1 и не найдена в именах моего информационного кадра, однако я не уверен, как изменить его, чтобы он соответствовал этим критериям, оставаясь при этом переменной группировки.
function (x, group, alpha = 0.05, std = TRUE, dictionary = NULL)
{
cl <- match.call()
if ((length(group) == 1) && (group %in% colnames(x))) {
group <- which(colnames(x) %in% group)
group.in <- TRUE
}
...
Любая помощь очень ценится, и если у вас есть другие предложения, они тоже приветствуются.
Я пытался использовать t.test, однако вызывать каждую переменную по отдельности утомительно.
Заранее спасибо!