【发布时间】:2020-11-02 05:54:00
【问题描述】:
我想稍微清理一下我的代码,并开始在我的日常计算中使用更多函数(我通常会使用 for 循环)。我有一个 for 循环的例子,我想把它变成一个函数。我遇到的问题是如何在没有循环的情况下逐步通过约束向量。这就是我的意思;
## 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”向量值的部分是我遇到的问题。如何在一个函数中从 frm[1] 到 frm[2].. 等等(应用或其他方式)?
任何建议将不胜感激。
谢谢。
【问题讨论】: