Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 方差分析:自由度几乎都等于1_R_Anova - Fatal编程技术网

R 方差分析:自由度几乎都等于1

R 方差分析:自由度几乎都等于1,r,anova,R,Anova,我有一个这样开始的数据集: > d.weight R N P C D.weight 1 1 0 0 GO 45.3 2 2 0 0 GO 34.0 3 3 0 0 GO 19.1 4 4 0 0 GO 26.6 5 5 0 0 GO 23.5 6 1 45 0 GO 22.1 7 2 45 0 GO 15.5 8 3 45 0

我有一个这样开始的数据集:

> d.weight
    R   N   P  C D.weight
1   1   0   0 GO     45.3
2   2   0   0 GO     34.0
3   3   0   0 GO     19.1
4   4   0   0 GO     26.6
5   5   0   0 GO     23.5
6   1  45   0 GO     22.1
7   2  45   0 GO     15.5
8   3  45   0 GO     23.4
9   4  45   0 GO     15.8
10  5  45   0 GO     42.9
...
等等

  • R
    是复制的,其中有5个(1-5个)
  • N
    是氮水平,也有5个(0,45,90,180,360)
  • P
    是磷水平,也有5个(0,35,70,140,280)
  • C
    是植物组合,有4种(GO、GB、LO、LB)
  • D.重量
    是干重,单位为克
然而,当我做方差分析时,我得到了错误的自由度。我通常在这一整套数据的子集上运行ANOVAs,但让我们做一个分析,否则我不会做,这样你就可以看到几乎所有的Df(自由度)都是错误的

> example.aov=aov(D.weight ~ R+N+P+C, data=d.weight)
> summary(example.aov)
         Df Sum Sq Mean Sq F value  Pr(>F)    
R             1   1158    1158   9.484 0.00226 ** 
N             1    202     202   1.657 0.19900    
P             1  11040   11040  90.408 < 2e-16 ***
C             3  41032   13677 112.010 < 2e-16 ***
Residuals   313  38220     122
我用
C
因子试了试,只是想看看它是否弄糟了什么:

> example.aov3=aov(D.weight ~ C, data=d.weight)
> summary(example.aov3)
             Df Sum Sq Mean Sq F value Pr(>F)    
C             3  41032   13677   85.38 <2e-16 ***
Residuals   316  50620     160                   
> 
> example.aov4=aov(D.weight ~ interaction(C), data=d.weight)
> summary(example.aov4)
                Df Sum Sq Mean Sq F value Pr(>F)    
interaction(C)   3  41032   13677   85.38 <2e-16 ***
Residuals      316  50620     160
>example.aov3=aov(D.weight~C,data=D.weight)
>摘要(示例.aov3)
Df和Sq平均Sq F值Pr(>F)
C 3 41032 13677 85.38
>示例.aov4=aov(D.weight~interaction(C),data=D.weight)
>摘要(示例.aov4)
Df和Sq平均Sq F值Pr(>F)

交互作用(C)3 41032 13677 85.38R通过检查变量是否为
数值变量或
因子变量,确定是否应将变量视为分类变量(方差分析类型分析)或连续变量(回归类型分析)。最简单的是,您可以通过以下方式将预测(独立)变量转换为因子:

facs <- c("R","N","P")
d.weight[facs] <- lapply(d.weight[facs],factor) 

facs将数值变量转换为因子。。。e、 g.
facs哇。我疯狂了一个小时试图自己解决这个问题,而你在不到一分钟内就解决了。谢谢。好的,这已经解决了一个问题,但现在它导致了另一个问题。当我试着在x轴上画一个N或P的直线图时,因为N和P不再是连续变量,我得到的是一个条形图。。。毫不奇怪。我确实需要程序在某些情况下把N和P看作是连续的,所以。。。我该怎么办?这要看情况而定;您可以将原始数据保留为数字,并在统计模型语句中使用显式的
factor()
语句(例如
D.weight~ factor(R)+factor(N)+factor(P)
),或者将新的因子变量作为辅助变量(例如
fR
fN
fP
)而不是覆盖旧的变量。。。如果你给出一个完全可复制的例子,说明你的目标是什么样的,你可能会得到更明确的帮助。@CarlWitthoft:我是一名农业专业的学生,只学过一个学期的统计数据。我的导师70岁,几乎失明,所以。。。我能说什么,我做我能做的。后续问题:你写“d_-weight[facs]”时是想创建一个新变量,还是想写“d.weight[facs]”?
facs <- c("R","N","P")
d.weight[facs] <- lapply(d.weight[facs],factor) 
for (varname in facs) {
   d.weight[[paste0("f",varname)]] <- factor(d.weight[[varname]])
}