R 比较两个不均匀向量的值并选择较大的值
我从一个.pdf文件中提取了两个值向量,代表两个不同关键字的位置。vector.1是第一个关键字,vector.2是第二个关键字。所以我需要使用下面的方法提取中间的所有行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
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