我有一个数据框,其中包括来自两组的参与者,以及几个带有标准化结果的数值。我想计算每个变量的科恩d和学生t。 (我知道进行多次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,但是单独调用每个变量很繁琐。
谢谢!
答案 0 :(得分:1)
我使用 psych 包中的cohen.d()函数多次遇到此问题。使用相同的cohen.d函数加载 effsize 包,您将可以使用它。