r - 从具有开始和结束位置的向量创建序列

标签 r indexing sequence

给定两个长度相等的独立向量:f.start 和 f.end,我想构造一个序列(乘以 1),从 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 中包含两个单独的参数,希望得到一些指导。

最佳答案

您可以尝试使用 mapplyMap ,它们会同时迭代您的两个向量。您需要提供该函数作为第一个参数:

vec1 = c(1,33,50)
vec2 = c(10,34,56)

unlist(Map(':',vec1, vec2))
# [1]  1  2  3  4  5  6  7  8  9 10 33 34 50 51 52 53 54 55 56

只需将 vec1vec2 替换为 f.startf.end 提供的 all(f.start<=f.end)

关于r - 从具有开始和结束位置的向量创建序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29440562/

相关文章:

python - 在将总行附加到数据框后删除 Pandas 数据框索引的名称

r - 按降序生成数字序列

f# - 通过F#中的条件公式创建循环序列

Java 序列生成器服务

r - 在 R 中,get ("abc") 和 eval(parse(text ="abc")) 有什么区别

r - 按条件 [Low, Hit, High] 分组并创建三个新列(R 中的 pandas 等效项)

postgresql - PostgreSQL 的 pg_stat_all_indexes 表中的统计信息存储多长时间?

r - 将具有 4 列的数据框熔化为三列

r - 是否有任何变通方法可以从 Rstudio 中获取插入符包工作的 train() 函数?

php - 如何在 PHP 中重新索引数组但索引从 1 开始?