格式化统计分析的数据帧

时间:2015-06-23 11:25:55

标签: r dataframe anova

我想做的是测试一个响应和一个解释变量之间的统计关系。为此,我假设单因素方差分析是一种有效的方法。但是,我的数据框未设置为执行此操作。我有一列用于响应变量(df1),但有几列将分类为我想要的解释变量(df2和df3)。作为一个粗略的例子,df2和df3代表2个独立位置的季节(夏季)。在这种情况下,我如何测试夏天对响应变量的影响?

df1 <- as.data.frame(matrix(sample(0:1000, 36*10, replace=TRUE), ncol=1))
df2 <- as.data.frame(matrix(sample(0:500, 36*10, replace=TRUE), ncol=1))
df3 <- as.data.frame(matrix(sample(0:200, 36*10, replace=TRUE), ncol=1))
Example <- cbind(df1,df2,df3)

这会涉及重构数据帧,以便df2和df3合并成一个长列,并且df1的长度加倍吗?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

正如Jaap和Andrew Taylor所说,问题在于格式化线性回归。这是通过'stack'和'cbind'函数实现的。

df1 <- as.data.frame(matrix(sample(0:1000, 36*10, replace=TRUE), ncol=1))
df2 <- as.data.frame(matrix(sample(0:500, 36*10, replace=TRUE), ncol=1))
df3 <- as.data.frame(matrix(sample(0:200, 36*10, replace=TRUE), ncol=1))
Example <- cbind(df2,df3)
Stacked <- stack(Example)
Combined <- cbind(df1,Stacked)
colnames(Combined) <- c("Response","Explanatory","Variable")
Linear <- lm(Explanatory~Response, data = Combined)
summary(Linear)

Stack将所有解释变量(df2和df3)放入一列,而cbind将此新列与来自response(df1)的值组合在一起,复制这些值以创建具有偶数行的数据帧,如根据SabDeM的评论。