计算数据框所有列之间的统计量(coohend)(使用 apply family 函数)
Compute a statistic (coohend) between all the columns of a dataframe (using apply family function)
我有一个看起来像这样的数据框
Concentration Value
Low 0.21
Medium 0.85
Low 0.10
Low 0.36
High 2.21
Medium 0.50
High 1.85
使用 pivot_wider 函数,您可以将其转换为数据框,其中每一列都是另一个变量的值:
Low Medium High
c(0.21,...) c(0.87 ,...) c(1.47 ,...)
library(effsize)
包中有一个名为 cohen.d()
的函数,可让您计算两组之间的效应大小。
例如,您可以 cohen.d(dat$Low, dat$Medium)
来获得这两列之间的效果大小。
但是,在这种情况下,我想使用 apply 系列中的一个函数来计算 Low 列与所有其余变量之间的余量。
一个基本的 R 想法可以是,
library(effsize)
l3 <- split(dd$Value, dd$Concentration)
lapply(l3[!names(l3) %in% 'Low'], function(i)cohen.d(l3$Low, i))
$High
Cohen's d
d estimate: -9.952077 (large)
95 percent confidence interval:
lower upper
-20.3804615 0.4763081
$Medium
Cohen's d
d estimate: -2.533928 (large)
95 percent confidence interval:
lower upper
-6.399536 1.331680
数据
dput(dd)
structure(list(Concentration = c("Low", "Medium", "Low", "Low",
"High", "Medium", "High"), Value = c(0.21, 0.85, 0.1, 0.36, 2.21,
0.5, 1.85)), class = "data.frame", row.names = c(NA, -7L))
我有一个看起来像这样的数据框
Concentration Value
Low 0.21
Medium 0.85
Low 0.10
Low 0.36
High 2.21
Medium 0.50
High 1.85
使用 pivot_wider 函数,您可以将其转换为数据框,其中每一列都是另一个变量的值:
Low Medium High
c(0.21,...) c(0.87 ,...) c(1.47 ,...)
library(effsize)
包中有一个名为 cohen.d()
的函数,可让您计算两组之间的效应大小。
例如,您可以 cohen.d(dat$Low, dat$Medium)
来获得这两列之间的效果大小。
但是,在这种情况下,我想使用 apply 系列中的一个函数来计算 Low 列与所有其余变量之间的余量。
一个基本的 R 想法可以是,
library(effsize)
l3 <- split(dd$Value, dd$Concentration)
lapply(l3[!names(l3) %in% 'Low'], function(i)cohen.d(l3$Low, i))
$High
Cohen's d
d estimate: -9.952077 (large)
95 percent confidence interval:
lower upper
-20.3804615 0.4763081
$Medium
Cohen's d
d estimate: -2.533928 (large)
95 percent confidence interval:
lower upper
-6.399536 1.331680
数据
dput(dd)
structure(list(Concentration = c("Low", "Medium", "Low", "Low",
"High", "Medium", "High"), Value = c(0.21, 0.85, 0.1, 0.36, 2.21,
0.5, 1.85)), class = "data.frame", row.names = c(NA, -7L))