2016-05-03 8 views
0

私は補間された地球化学図を生成するプロセスを自動化しようとしています。 私は本質的に列13で始まり、#67までループしてループを作成しました。数学関数への引数の追加

しかし、IDWコードの一部には、それぞれの地球化学パラメータの現在の列のヘッダーがマップされている必要があります。

たとえば、カラム#13のヘッダは、「Ag_ppm」である元のコードを読み取るように:

LogSr.idw = idw(log10("Ag_ppm") ~ 1 , locations=NGSA.SPDF, newdata=NGSA.grid, 
        maxdist=15000, nmin=4) 

をI 1の各ループによって(ここで、i増加を使用して各ループ内の関心の列のヘッダを入手することができました。13 、14、15など):私は単にコルンに "Ag_ppm" を代入する際

coln <- colnames(NGSA.df[i]) 

しかし、ラインは、所定のエラーで失敗します。私はペーストを含むさまざまなアプローチを試しましたが、すべてが同じエラーを引き起こします。 log10の中

LogSr.idw = idw(log10(coln) ~ 1, locations=NGSA.SPDF, newdata=NGSA.grid, 
        maxdist=15000, nmin=4) 

エラー(コルン):数学関数

に数字以外の引数は、現在のメソッドを使用して合理的に単純なアプローチはありますか?

+0

1つのこと:この 'colnames(NGSA.df)[i]'を代わりに使用してください。あなたのバージョンでは、データの列全体が不必要にコピーされますが、変数の名前だけが必要です。 'idw'は基底R関数ではなく、あなたが使用しているパッケージの名前も含めてください。 – lmo

+0

このコード行では、パッケージは 'gstat' –

+0

です。私はlog10( "Ag_ppm") 'が同じエラーをスローしないことに驚いていることを認めなければなりません。 colnを 'get':' log10(get(coln)) 'にラップしてみてください。 – lmo

答えて

0

log10("Ag_ppm")は同じエラーをスローしませんが、私はしばしばgetを使用してこの問題を克服したことを私には驚くべきことである:ほとんどの状況で

LogSr.idw = idw(log10(get(coln)) ~ 1, locations=NGSA.SPDF, newdata=NGSA.grid, 
       maxdist=15000, nmin=4) 

を、代替を考えることは良いアイデアですgetを使用することができますが、式(~)とnewdata arguemtnの使用により、getが最適なソリューションになる可能性があります。

関連する問題