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;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) 中的错误:数学函数的非数字参数

是否有使用当前方法的相当简单的方法?

4

1 回答 1

0

令我惊讶的是,log10("Ag_ppm")没有抛出相同的错误,但我经常使用以下方法克服这个问题get

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

在大多数情况下,考虑使用 的替代方法是个好主意get,但由于~此处的公式 ( ) 以及使用 newdata argumentmtn,get可能是最佳解决方案。

于 2016-05-03T13:05:14.073 回答