2017-08-27 64 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) 

希望這有助於