R 比较两个不均匀向量的值并选择较大的值

R 比较两个不均匀向量的值并选择较大的值,r,R,我从一个.pdf文件中提取了两个值向量,代表两个不同关键字的位置。vector.1是第一个关键字,vector.2是第二个关键字。所以我需要使用下面的方法提取中间的所有行 df.1如果您试图将特定值从vector.2提取到另一个vector.3中,则应该这样做,前提是索引遵循由2分隔的序列。您可以使用seq生成一系列索引,方法是相应地提供开始索引、结束索引和增量by参数 vector.3 <- vector.2[seq(1,length(vector.2),by=2)] [1] 4

我从一个.pdf文件中提取了两个值向量,代表两个不同关键字的位置。vector.1是第一个关键字,vector.2是第二个关键字。所以我需要使用下面的方法提取中间的所有行


df.1如果您试图将特定值从vector.2提取到另一个vector.3中,则应该这样做,前提是索引遵循由2分隔的序列。您可以使用seq生成一系列索引,方法是相应地提供开始索引、结束索引和增量by参数

vector.3 <-  vector.2[seq(1,length(vector.2),by=2)]
 [1]   48  111  155  198  250  303  350  392  435  478
[11]  523  578  635  679  723  773  824  871  929 1008
[21] 1091 1182 1232 1308 1385 1430 1478 1525 1572 1629
[31] 1683 1729 1776 1821 1874 1967
向量
您还可以执行
vector.2[colSums(sappy(vector.1,“>”,vector.2))+1]

,或者是否希望
vector.2
的最小值大于
vector.1
的每个值

sapply(vector.1, function(x) min(vector.2[vector.2>x]))

 [1]   48  111  155  198  250  303  350  392  435  478  523  578  635  679  723  773  824  871  929 1008 1091 1091 1182
[24] 1182 1232 1308 1385 1430 1478 1525 1572 1629 1683 1729 1776 1821 1874 1967 1967

我很困惑你是怎么得到结果的。“正如你所看到的vector.1[2]比vector.2[2]大,实际位置应该是vector.2[3]”--我可以看到
vector.1[2]
vector.2[2]
大,但我怎么知道实际位置是
vector.2[3]
?你能告诉我们前几个值吗?看起来你想从代码>矢量2。392代码中找到其他的值,直到它跳过很远。感谢帮助,但是没有具体的序列或趋势。如果这工作,请通过点击答案旁边的检查和/或投票来接受答案。
vector.3 <-  vector.2[seq(1,length(vector.2),by=2)]
 [1]   48  111  155  198  250  303  350  392  435  478
[11]  523  578  635  679  723  773  824  871  929 1008
[21] 1091 1182 1232 1308 1385 1430 1478 1525 1572 1629
[31] 1683 1729 1776 1821 1874 1967
vector.2[rowSums(outer(vector.1,vector.2,">"))+1]
 [1]   48  111  155  198  250  303  350  392  435  478  523  578  635  679  723  773  824  871  929
[20] 1008 1091 1091 1182 1182 1232 1308 1385 1430 1478 1525 1572 1629 1683 1729 1776 1821 1874 1967
[39] 1967
sapply(vector.1, function(x) min(vector.2[vector.2>x]))

 [1]   48  111  155  198  250  303  350  392  435  478  523  578  635  679  723  773  824  871  929 1008 1091 1091 1182
[24] 1182 1232 1308 1385 1430 1478 1525 1572 1629 1683 1729 1776 1821 1874 1967 1967