Я пытаюсь автоматизировать процесс создания интерполированных геохимических карт. Я создал цикл, который по существу начинается в столбце № 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): нечисловой аргумент математической функции
Есть ли достаточно простой подход с использованием текущего метода?
colnames(NGSA.df)[i]
. Ваша версия без необходимости копирует весь столбец данных, тогда как вам нужно только имя переменной. Пожалуйста, укажите имя пакета, который вы используете, так какidw
не является базовой функцией R. - person lmo   schedule 03.05.2016log10("Ag_ppm")
не вызывает ту же ошибку. Попробуйте обернуть coln вget
:log10(get(coln))
. - person lmo   schedule 03.05.2016LogSr.idw= idw(log10(get(coln))~1,locations=NGSA.SPDF,newdata=NGSA.grid, maxdist=15000,nmin=4)
- person M. Aberle   schedule 03.05.2016