微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

确定两个给定整数/行之间的整数/行 数据

如何解决确定两个给定整数/行之间的整数/行 数据

我在 r 中处理了大量文本,并且我已经确定了包含关键文本的行号。我将这些存储为两个不同的对象:location1 和 location2

我现在想创建一个位于 location1 和 location2 之间的行的列表。

location1  int [1:393] 4 21 38 57 75 93 110 127 144 166 ...
location2  int [1:393] 6 23 41 59 77 95 112 129 147 168 ...

所以我正在寻找看起来像这样的输出

5 22 39 40 58 76 111 128 145 146 167 

这比 location1 + 1 更复杂,因为在某些情况下,location1location2 之间有多条线。例如,当 location1 为 38 且 location2 为 41 时,我希望在输出中得到 39 和 40。

我该怎么做?

谢谢!

解决方法

 unlist(Map(seq,location1 + 1,location2 - 1))
 [1]   5  22  39  40  58  76  94 111 128 145 146 167
,

我们可以使用Map

unlist(Map(`:`,location2 - 1))
#[1]   5  22  39  40  58  76  94 111 128 145 146 167

或者使用 Vectorizerepd 方法

v1 <- location2 - location1 -1
rep(location1,v1) + sequence(v1)
#[1]   5  22  39  40  58  76  94 111 128 145 146 167

或者使用 map2

library(purrr)
map2(location1 + 1,location2 - 1,`:`)

也可以改成

tmp <- sweep(df11,2,c(1,-1),`+`)

do.call(Map,c(f = `:`,unname(tmp)))

数据

location1 <- c(4,21,38,57,75,93,110,127,144,166)

location2 <- c(6,23,41,59,77,95,112,129,147,168)
df1 <- data.frame(location1,location2)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?