2017-04-26 13 views
0

関数を記述しようとしています。データは10個の列で構成されています。eval(expr、envir、enclos)のエラー:オブジェクト 'c2'が見つかりません[このアイテムは、この列がデータフレームに存在します]

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

このような5つの列に対して回帰を適用したいとします。だから、私は関数を書くことを試みた。私はC2本家のこのエラーを取得するなぜ、このような

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

などのエラーが、誰かが私に教えてもらえ取得

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

function(c=c2) 

は、データセットです。

答えて

1

問題は、グローバル環境ではなく、c2がデータセットに含まれていることです。 f(c2)と書いたとき、Rは地球環境で定義されたc2を探しています。 Rはあなたのdata.frameの列名を掘り下げることを知らない。

データがdata.frameであるとすると、df$c2またはdf[["c2"]]またはdf[,"c2"]という名前で参照する必要があります。

Rの標準と非標準の評価は、あなたが望むようにそのような関数を書くことに適用されるので、読んでおくべきでしょう。

関連する問題