所以,我试图在R中进行bartlett或任何测试。它对导入的数据很有用:
data(foster, package = "HSAUR")
bartlett.test(weight ~ litgen,data = foster)
但不是我的数据:
mdat <- matrix(c(2.3,2.2,2.25, 2.2,2.1,2.2, 2.15, 2.15, 2.2, 2.25, 2.15, 2.25), nrow = 3, ncol = 4)
working_df = data.frame(mdat)
bartlett.test(X1 ~ X2, data = working_df)
Error in bartlett.test.default(c(2.3, 2.2, 2.25), c(2.2, 2.1, 2.2)) :
there must be at least 2 observations in each group
我尝试了所有不同的功能,分配,但问题是参数被视为作为单个对象而不是其内容
如何使用我的数据框进行重击测试?如何使参数成为内容,而不是容器?
答案 0 :(得分:1)
当你谈论&#34;内容&#34;时,我不知道你的意思。和&#34;容器&#34;。 ?bartlett.test
的文档非常简单。您尝试使用formula
,因此我们会查看formula
参数的说明:
formula
lhs ~ rhs
形式的公式,其中lhs
给出数据值,rhs
给出相应的组。
这与foster
数据的结构相匹配,其中weight
是数字,litgen
是分类分组。
head(foster)
litgen motgen weight
1 A A 61.5
2 A A 68.2
3 A A 64.0
4 A A 65.0
5 A A 59.7
6 A B 55.0
因此,您需要以这种格式存储数据。
your_data = data.frame(x = c(mdat), group = c(col(mdat)))
your_data
# x group
# 1 2.30 1
# 2 2.20 1
# 3 2.25 1
# 4 2.20 2
# 5 2.10 2
# 6 2.20 2
# 7 2.15 3
# 8 2.15 3
# 9 2.20 3
# 10 2.25 4
# 11 2.15 4
# 12 2.25 4
bartlett.test(x ~ group, data = your_data)
# Bartlett test of homogeneity of variances
#
# data: x by group
# Bartlett's K-squared = 0.86607, df = 3, p-value = 0.8336
那是你们所有的团体。如果您想进行成对比较,请将您的数据子集提供给bartlett.test
。