我有一个数据框df
df<-structure(list(Y = c(1.20167297867875, 1.27851224829923, 1.18763208884216,
1.23765309504143, 1.30246129512516, 1.19258132417647, 1.17015215455443,
1.16756342150402, -0.000206480999730317, 0.292683228844456),
P = c(1750.51986303926, 1614.11541634798, 951.847023338079,
1119.3682884872, 1112.38984390156, 1270.65773075982, 1234.72262170166,
1338.46096616983, 458.433428257704, 1198.95775346458), TA = c(9.10006221322572,
7.65505467142961, 8.21480062559674, 8.09251754304318, 8.466220758789,
8.48094407814006, 8.77304120569444, 8.31727518543397, 10.4412463804413,
8.14410265791868), A = c(49, 50, 51, 52, 53, 54, 55, 56,
0, 1)), .Names = c("Y", "P", "TA", "A"), row.names = 2803:2812, class = "data.frame")
我想以几乎与我已经做过的方式进行ANOVA。
lm1 <- lm(y~ P + TA + A, data=df)
Anova<-aov(lm1)
summary(Anova)
不同的是,现在我想根据下面的函数转换我的一个变量(A
)
f1<- function(x) {0.384394*(x^0.341429)*(exp(-0.004749 *x))}
其中函数表示变量y = 0.384394 *(A ^ 0.341429)*(exp(-0.004749 * A)。
我的线性模型类似于
lm2<-lm(y~P+TA+ my transform A, data=df)
有人知道如何执行该操作吗?
答案 0 :(得分:0)
你基本上已经完成了所有的工作。只需使用您的功能修改A列并重新运行您的anova。
df2=df
df2$A<-f1(df$A)
df2
lm2 <- lm(Y~ P + TA + A, data=df)
Anova2<-aov(lm2)
summary(Anova2)