我有如下数据。
数据:
temperature stage Replicate week Nematode_Number
T20 All 1 1 60.0
T20 All 2 1 72.7
T20 All 3 1 69.3
T20 All 4 1 45.3
T20 All 5 1 40.7
我喜欢找到线性模型,然后基于Box cox对这些数据进行标准化,但是出现了错误。
Script:
> mode (all)
[1] "list"
> is.data.frame (all)
[1] TRUE
> getClass(class(all))
Class "data.frame" [package "methods"]
Slots:
Name: .Data names row.names .S3Class
Class: list character data.frameRowLabels character
Extends:
Class "list", from data part
Class "oldClass", directly
Class "vector", by class "list", distance 2
> a <- boxcox(lm(Nematode_Number ~ week, data = all))
Error in terms.formula(formula, data = data) : 'data' argument is of the wrong type
答案 0 :(得分:2)
boxcox
应该有效。好的boxcox也确实采取了公式对象。因此,如果可以或rm(all)
尝试清除您的环境并重新读取它。然后尝试下面的代码,如果这些代码在上述代码之前不起作用。
a=boxcox(Nematode_Number~week,data=all)
希望这有帮助
答案 1 :(得分:2)
数据强>
df <- data.frame(temperature=rep("T20",5),
stage=rep("All",5),
Replicate=1:5, week=rep(1,5),
Nematode_Number=c(60.0, 72.7, 69.3, 45.3, 40.7),
stringsAsFactors=F)
这是你想要的吗?
这有效
lm(Nematode_Number ~ week, data=df)
这有效
library(MASS)
boxcox(Nematode_Number ~ week, data=df)
这有效
temp <- lm(Nematode_Number ~ week, data=df)
boxcox(temp, data=df)