R-使用Batlett';为数据帧中的每一列设置测试函数
我有一个数据框,需要为其中的每一列应用R-使用Batlett';为数据帧中的每一列设置测试函数,r,dataframe,statistics,hypothesis-test,R,Dataframe,Statistics,Hypothesis Test,我有一个数据框,需要为其中的每一列应用bartlett.test()函数。如果可能,我需要使用apply()或sapply()函数运行它 我的示例数据如下: df <- data.frame(ENSG00000000003 = c(10, 50, 30, 40), ENSG00000000419 = c(20, 60, 100, 24), ENSG00000000457 = c(1, 10, 20, 70), group = c("yes","no","no","yes")) rownam
bartlett.test()
函数。如果可能,我需要使用apply()
或sapply()函数运行它
我的示例数据如下:
df <- data.frame(ENSG00000000003 = c(10, 50, 30, 40), ENSG00000000419 = c(20, 60, 100, 24), ENSG00000000457 = c(1, 10, 20, 70), group = c("yes","no","no","yes"))
rownames(df) <- c("sample01", "sample02", "sample03", "sample04")
df
ENSG00000000003 ENSG00000000419 ENSG00000000457 group
sample01 10 20 1 yes
sample02 50 60 10 no
sample03 30 100 20 no
sample04 40 24 70 yes
df这里有一种使用lappy()的方法
:
res这里有一种使用lappy()的方法
:
res
pvalue <- bartlett.test(ENSG00000000003 ~ group, df)
pvalue
Bartlett test of homogeneity of variances
data: ENSG00000000003 by group
Bartlett's K-squared = 0.10672, df = 1, p-value = 0.7439
res <- lapply(df[,-4], bartlett.test, df$group)
ps <- sapply(res, getElement, "p.value")
df <- rbind(df, pval=c(ps, NA))
df
ENSG00000000003 ENSG00000000419 ENSG00000000457 group
sample01 10.0000000 20.0000000 1.0000000 yes
sample02 50.0000000 60.0000000 10.0000000 no
sample03 30.0000000 100.0000000 20.0000000 no
sample04 40.0000000 24.0000000 70.0000000 yes
pval 0.7439055 0.1417199 0.1950732 <NA>
library(matrixTests)
ps <- col_bartlett(df[,-4], df$group)$pvalue
df <- rbind(df, pval=c(ps, NA))
df
ENSG00000000003 ENSG00000000419 ENSG00000000457 group
sample01 10.0000000 20.0000000 1.0000000 yes
sample02 50.0000000 60.0000000 10.0000000 no
sample03 30.0000000 100.0000000 20.0000000 no
sample04 40.0000000 24.0000000 70.0000000 yes
pval 0.7439055 0.1417199 0.1950732 <NA>