2017-04-26 92 views
0

我正在嘗試編寫一個函數。數據由十列組成。eval(expr,envir,enclos)中的錯誤:未找到對象'c2'[具有諷刺意味的是,此列存在於數據框中]

alpha 
c1 c2 c3 c4....c10 
1 0.4 a 
2 0.3 b 
1 -1.2 c 

我想對五個這樣的列應用迴歸。所以,我試着寫一個函數。

function.one <- function(c) { 
    glm(c1~c2,data=alpha) } 

function(c=c2) 

我得到的錯誤,如

Error in eval(expr, envir, enclos) : object 'c2' not found 

有人能告訴我,爲什麼我得到這個錯誤eventhough C2是在數據集中。

回答

1

問題是c2位於您的數據集中,而不是全局環境。當您編寫f(c2)時,R會查找在全球環境中定義的c2,並且找不到它。 R不知道要在data.frame的列名中四處挖掘。

假設您的數據是data.frame,您需要將其引用爲df$c2或或。

您應該閱讀R中的標準評估和非標準評估,因爲它適用於編寫您所期望的功能。

相關問題