给定两个长度相等的矢量:f.start 和 f.end,我想构建一个序列(逐一),从 f.start[1]:f.end[1]
到 f.start[2]:f.end[2]
,...,最终到 f.start[n]:f.end[n]
。
这里有一个只有6行的示例。
f.start f.end
[1,] 45739 122538
[2,] 125469 202268
[3,] 203563 280362
[4,] 281657 358456
[5,] 359751 436550
[6,] 437845 514644
简单来说,可以使用循环实现,但对于较大的数据集(行数>2000),速度极慢。
f.start<-c(45739,125469,203563,281657,359751,437845)
f.end<-c(122538,202268,280362,358456,436550,514644)
f.ind<-f.start[1]:f.end[1]
for (i in 2:length(f.start))
{
f.ind.temp<-f.start[i]:f.end[i]
f.ind<-c(f.ind,f.ind.temp)
}
我认为可以使用apply()函数来完成这个任务,但我还没有弄清楚如何在apply()中传递两个不同的参数,希望能得到一些指导。