2016-06-27 5 views
0

エラーを呼び出す(マース@データ、X):lapply外部[email protected][,1]を実行"選択不定列"()<code>[.data.frame</code>に

library(automap) 
data(meuse) 
coordinates(meuse) = ~ x+y 
lapply(1:1, function (x) { 
    automap::autofitVariogram([email protected][, x] ~ 1, input_data = meuse) 
}) 

:未定義の列は

MWEを選択呼び出しが正常に動作し、数値ベクトルが返されます。

automap::autofitVariogram([email protected][, 1] ~ 1, input_data = meuse)も正常に動作します。

私はそれがlapply呼び出しによって引き起こされることが問題であると予想しました。しかし、別のデータセット(SpPointsDaFr)を使用しても問題は発生せず、正常に動作します。

「meuse @ data」の後の2番目の「カンマ」が常に「サブセット」のエラーメッセージに表示されているかどうかはわかりません。

編集:

動作しません。別のアプローチ:文字列を経由して対処私は、回避策を見つけ

cols <- names([email protected]) [1:1] 
> lapply(cols, function (x) { 
+  automap::autofitVariogram([email protected][, x] ~ 1, input_data = meuse) 
+ }) 
+0

'' lapply(... meuse @ data [[x]]〜1 ... 'は動作しますか? – gung

+0

いいえ、.subset2(x、i、exact = exact)のエラー: 1 ' –

答えて

0

(私は別の機能を使用するため[1:1]の代わり[1]を使用することに注意してください)。 autofitVariogramのコールの前に必要な値meuseをアドレッシング/サブセット化し、次にオブジェクトtmpを入れます。

lapply(1:1, function (x) { 
     tmp <- [email protected][, x] 
     emp.svgm <- automap::autofitVariogram(tmp ~ 1, meuse) 
}) 

関数呼び出し内でサブセットを作成しようとすると、エラーが表示されることがあります。