向数学函数添加参数

时间:2016-05-03 12:14:21

标签: r gstat

我正在尝试自动化生成插值地球化学图的过程。 我创建了一个基本上从第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; 13,14,15等):

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

但是,当我简单地将“Ag_ppm”替换为coln时,该行会因给定错误而失败。我尝试了各种方法,包括粘贴,虽然一切都会导致同样的错误。

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

log10(coln)中的错误:数学函数的非数字参数

使用当前方法有一个相当简单的方法吗?

1 个答案:

答案 0 :(得分: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的使用,{{1可能是最好的解决方案。