2017-08-27 105 views
0

我有一个数据如下。如何使用Box cox传输数据?

数据:

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 

我想找到线性模型,然后正常化基础上盒考克斯这个数据数据,但有一个错误。

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 

回答

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) 
2

boxcox应该工作。那么boxcox也会采用公式对象。因此,如果可以,请尝试清除您的环境或rm(all)并重新阅读。然后尝试下面的代码,如果在这之前的所有代码都不起作用。

a=boxcox(Nematode_Number~week,data=all) 

希望这有助于