Добавление аргумента в математическую функцию
Я пытаюсь автоматизировать процесс для получения интерполированных геохимических карт. Я создал цикл, который по существу начинается в столбце № 13 и проходит до № 67.
Однако часть кода IDW требует, чтобы заголовок текущего столбца соответствовал соответствующим геохимическим параметрам.
Например; Заголовок столбца № 13 - "Ag_ppm", поэтому исходный код гласил:
LogSr.idw = idw(log10("Ag_ppm") ~ 1 , locations=NGSA.SPDF, newdata=NGSA.grid,
maxdist=15000, nmin=4)
Я смог получить заголовок интересующего столбца в каждом цикле, используя (где я увеличиваю на 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 ответ
Мне удивительно что log10("Ag_ppm")
не выдает ту же ошибку, но я часто преодолевал эту проблему, используя get
:
LogSr.idw = idw(log10(get(coln)) ~ 1, locations=NGSA.SPDF, newdata=NGSA.grid,
maxdist=15000, nmin=4)
В большинстве ситуаций, это хорошая идея, чтобы придумать альтернативу get
, но по формуле (~
) здесь, и использование новых данных arguemtn, get
может быть лучшим решением.