【发布时间】:2013-03-20 18:23:08
【问题描述】:
我正在尝试找出每个子列表中的哪个元素是该特定子列表的最小值。我试图应用该功能的当前数据块是 41 个条目的记录。它们被另一个函数分组,该函数为每个子列表或子组生成索引。元素1:8 在第一个子组中,以下子组如下:9:17、18:23、24:33、34:41。请注意,我将我正在使用的数据称为“b1”,并且为将 b1 的元素分组为子组而创建的索引是“indx”。我可以像这样使用 sapply 找出每个子组中的最小值:
sapply(indx, function(i) min(b1[i])
但是,我一直在寻找上面提供的这些数字中的每一个是哪个“b1”元素。我知道我可能需要函数which() 和mapply(),但一直无法将它们放在一起。
可重现的数据:
b1 <- sample(1:20,41,T)
starts <- c(1,9,18,24,34)
stops <- c(8,17,23,33,41)
indx <- mapply(seq, from=starts, to=stops)
【问题讨论】:
-
你能澄清
b1(i)的意思吗?b1是函数吗? -
b1 是创建子列表之前的整个记录。 b1[i] 是为 min 函数提取 b1 个分量。我为错误道歉,我使用 () 而不是 []。
标签: r