【发布时间】:2016-03-28 03:34:01
【问题描述】:
我有一个数组(选项触发):
550 600 620 640 650 660 680 700 710 720 730 740 750 760 770 780 790 800 810 820 830 840 850 860 870 880 890 900 910 920 930 940 950 960 970 980 990 1000 1010 1020 1030 1040 1050 1060 1070 1080 1090 1100 1110 1120 1130 1140 1150 1160 1170 1180 1190 1200 1210 1220 1230 1240 1250 1260 1270 1280 1290 1300 1310 1320 1330 1340 1350 1360 1370 1380 1390 1400 1410 1420 1430 1440 1450 1460 1470 1480 1490 1500 1520
它有时在开始或结束时有不均匀的增量。例如,第一个数字是 550,从那里马上到 600,增加了 50 个点。
我知道在一个中心数字(在货币上)附近存在上述向量的一个子集,它增加 10 个点。我想以某种方式提取它。该向量的中心数是 1090。它可以针对不同的向量不断变化,例如上面的向量 - 但应该在中心附近。
所以对于上面的数组,我要提取:
700 710 720 730 740 750 760 770 780 790 800 810 820 830 840 850 860 870 880 890 900 910 920 930 940 950 960 970 980 990 1000 1010 1020 1030 1040 1050 1060 1070 1080 1090 1100 1110 1120 1130 1140 1150 1160 1170 1180 1190 1200 1210 1220 1230 1240 1250 1260 1270 1280 1290 1300 1310 1320 1330 1340 1350 1360 1370 1380 1390 1400 1410 1420 1430 1440 1450 1460 1470 1480 1490 1500
在这个向量中,所有数字都以 10 个点的恒定速率递增。所以基本上我希望能够将第一个向量子集为一个在 10 点处不断增加的子集。我该怎么做?
一种方式太循环了。取 10 个点的差异和子集之间的差异。但是这种方式不是很优雅,因为我必须设置一个数字来停止循环。很想听听是否有更好的方法。
谢谢
编辑:
对于以下序列,朱利叶斯的回答似乎不起作用..
700 710 720 730 740 750 760 770 780 790 800 810 820 830 840 850 860 870 880 890 900 910 920 930 940 950 960 970 980 990 1000
1010 1020 1030 1040 1050 1060 1070 1080 1090 1100 1110 1120 1130 1140 1150 1160 1170 1180 1190 1200 1210 1220 1230 1240 1250 1260 1270 1280 1290 1300 1310
1320 1330 1340 1350 1360 1370 1380 1390 1400 1450 1500
当我使用朱利叶斯的回答时,我得到了: 1410 1450 1460141014101B14101B14101B14101B14101B14101B14101B14101630 1630 1630 1630 1630 1630 1630 1690 1630 1690 1630 1690 1690 1630 1690 1670 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 160 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 1690 160 1720 1730 1740 1780 1790 1800 1818181818181818201830 18301880188018801880181818181818181910 1910 1930 1940 1950 1950 1950 1950 1970 1970 1970 1980 1980 1980 1980 1980 1990 1990 1990 1990 2000 2000年2010年2020 2030 2040 2050 2060 2070 2080 2090 2100 2110
【问题讨论】:
-
“围绕中心”不是很精确。是否可以假设您正在寻找具有恒定增量的最长子序列?
-
rle(diff(your_vector))之类的内容应该会有所帮助。 -
而且,为了清楚起见,您的意思是
vector对,不是array类的对象?
标签: r