Я хотел бы немного очистить свой код и начать использовать больше функций для своих повседневных вычислений (где я обычно использовал бы циклы for). У меня есть пример для l oop, который я хотел бы превратить в функцию. Проблема, с которой я столкнулся, заключается в том, как пройти через векторы ограничений без al oop. Вот что я имею в виду:
## represents spectral data
set.seed(11)
df <- data.frame(Sample = 1:100, replicate(1000, sample(0:1000, 100, rep = TRUE)))
## feature ranges by column number
frm <- c(438,563,953,963)
to <- c(548,803,1000,993)
nm <- c("WL890", "WL1080", "WL1400", "WL1375")
WL.ps <- list()
for (i in 1:length(frm)){
## finds the minimum value within the range constraints and returns the corresponding column name
WL <- colnames(df[frm[i]:to[i]])[apply(df[frm[i]:to[i]],1,which.min)]
WL.ps[[i]] <- WL
}
new.df <- data.frame(WL.ps)
colnames(new.df) <- nm
У меня проблемы с той частью, где я перебираю векторные значения «frm» и «to». Как один go от frm [1] до frm [2] .. и т.д. в функции (применить или иначе)?
Любые советы будут очень признательны.
Спасибо ты.