$operator的使用

$operator的使用,r,operators,R,Operators,我的问题是关于访问数据帧特定部分的$operator 下面是我的数据框 structure(list(Treatment = structure(c(11L, 11L, 11L, 11L, 11L, 11L), .Label = c("Chlora", "Gen", "Lin", "Metro", "Metro+Pen", "Metro+Rif", "Metro+Rif+Pen", "Pen", "Pen+Rif", "Rif", "Untreated" ), class = "factor

我的问题是关于访问数据帧特定部分的$operator

下面是我的数据框

structure(list(Treatment = structure(c(11L, 11L, 11L, 11L, 11L, 
11L), .Label = c("Chlora", "Gen", "Lin", "Metro", "Metro+Pen", 
"Metro+Rif", "Metro+Rif+Pen", "Pen", "Pen+Rif", "Rif", "Untreated"
), class = "factor"), CDW = c(0.833, 0.867, 0.833, 2.7, 3.3, 
3.133), Chlorophyll = c(1.098, 1.376, 1.64, 34.714, 37.773, 40.54
), EPS = c(0.092, 0.067, 0.092, 0.571, 0.591, 0.597), Day = c(0L, 
0L, 0L, 10L, 10L, 10L), TreatmentDay = structure(c(21L, 21L, 
21L, 22L, 22L, 22L), .Label = c("Chlora0", "Chlora10", "Gen0", 
"Gen10", "Lin0", "Lin10", "Metro+Pen0", "Metro+Pen10", "Metro+Rif+Pen0", 
"Metro+Rif+Pen10", "Metro+Rif0", "Metro+Rif10", "Metro0", "Metro10", 
"Pen+Rif0", "Pen+Rif10", "Pen0", "Pen10", "Rif0", "Rif10", "Untreated0", 
"Untreated10"), class = "factor"), richness = c(36L, 37L, 39L, 
31L, 31L, 24L), shannon = c(3.35867443756547, 3.37354007038303, 
3.43640985397324, 3.16018680691703, 3.15718684762791, 2.85288614815093
)), .Names = c("Treatment", "CDW", "Chlorophyll", "EPS", "Day", 
"TreatmentDay", "richness", "shannon"), row.names = c("Day0F1", 
"Day0F2", "Day0F3", "Day10F1", "Day10F2", "Day10F3"), class = "data.frame")
我可以用

Unt$richness
[1] 36 37 39 31 31 24
但如果我想做方差分析测试,我会收到一条错误消息,说我不能将$用于原子向量

Unt_Richness_anova <- aov(Unt$richness, TreatmentDay)

Unt\u Richness\u anova通过查看
aov()
函数的源代码,实际上是对另一个名为
terms()
的函数的调用导致了此错误

现在,如果在
aov()
函数中未指定数据帧时调用
terms()
函数,则
terms()
函数似乎只接受从
aov()
函数传递的公式样式的参数

请注意,以下代码不起作用(如您指定的):


Unt\u Richness\u anova通过查看
aov()
函数的源代码,实际上是对另一个名为
terms()
的函数的调用导致了此错误

现在,如果在
aov()
函数中未指定数据帧时调用
terms()
函数,则
terms()
函数似乎只接受从
aov()
函数传递的公式样式的参数

请注意,以下代码不起作用(如您指定的):


Unt\u Richness\u anova这是什么语言?你的问题需要更多的标签<代码>运算符
本身太通用了。data.frame是一种特殊类型的列表。您可以通过
is.list(Unt)
看到这一点。列表特别不是一个原子向量。您可以通过
is.atomic(Unt)
看到这一点
Unt$richness
,存储在data.frame中的向量是原子的,
是.atomic(Unt$richness)
。这是什么语言?你的问题需要更多的标签<代码>运算符
本身太通用了。data.frame是一种特殊类型的列表。您可以通过
is.list(Unt)
看到这一点。列表特别不是一个原子向量。您可以通过
is.atomic(Unt)
看到这一点
Unt$richness
,存储在data.frame中的向量是原子的,
是.atomic(Unt$richness)
Unt_Richness_anova <- aov(Unt$richness, Unt$TreatmentDay)
Unt_Richness_anova <- aov(Unt$richness ~ Unt$TreatmentDay)