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

基于 data.frame 中 row.names 的向量返回列值

如何解决基于 data.frame 中 row.names 的向量返回列值

我在下面有一个示例 data.frame(一个非常大的循环数据库的子集)

> dput(try)
structure(list(Actuator.Force = c(-402.57388,-400.83463,-402.72595,-404.24283,-404.07663,-403.83575,-407.55435,-418.7684,-435.86246,-462.38239,-504.09146,-558.40039,-618.46674,-681.58704,-748.87347,-814.95032,-880.57739,-946.11627,-1012.9043,-1075.2557,-1141.4972,-1209.1968,-1272.8707,-1336.021,-1400.5078,-1465.5786,-1528.6499,-1589.5626,-1654.6541,-1717.825,-1780.0903,-1839.9329,-1902.9841,-1964.1945,-2025.569,-2085.9578,-2148.239,-2207.5295,-2267.5806,-2328.6467,-2388.4958,-2447.5298,-2506.7534,-2567.687,-2625.7661,-2682.866,-2741.3511,-2802.1934,-2858.2546,-2915.1028,-2972.7683,-3030.8093,-3089.2439,-3145.5701,-3199.8442,-3259.2087,-3315.8582,-3371.958,-3426.5596,-3484.3855,-3541.2642,-3595.3362,-3650.0208,-3708.3748,-3763.8076,-3820.0623,-3875.3044,-3932.9504,-3989.6238,-4047.5957,-4104.8169,-4164.8237,-4223.5444,-4283.3813,-4341.3989,-4403.166,-4462.1479,-4522.5728,-4584.0186,-4644.7656,-4704.3525,-4762.6826,-4821.8706,-4878.8818,-4924.1021,-4959.0415,-4985.9517,-5005.4531,-5017.8027,-5026.0757,-5032.3428,-5036.8042,-5038.9292,-5039.5361,-5043.021,-5043.0981,-5043.0415,-5042.627,-5014.4199,-4853.5854,-4566.9771,-4198.7612,-3774.5527,-3317.6958,-2847.5229,-2364.7585,-1880.9485,-1405.4272,-930.289,-467.04822,-18.867363,421.17499,838.86719,1239.9121,1626.0669,1990.6389,2334.0852,2655.344,2962.0227,3243.7817,3506.2249,3744.2622,3959.8271,4156.7061,4324.9048,4469.229,4591.6689,4687.4194,4764.0801,4814.6167,4840.313,4846.0181,4826.3135,4777.6553,4696.0791,4583.854,4442.457,4272.5254,4076.7224,3851.1211,3603.1853,3330.7456,3038.3157,2724.115,2386.5476,2032.5809,1660.0547,1268.0084,859.16675,432.4075,-14.131592,-479.29309,-955.67108,-1444.614,-1937.2562,-2437.0085,-2941.8914,-3450.9009,-3959.9597,-4468.9795,-4981.2549,-5492.6997,-6002.334,-6510.5425,-7016.2432,-7517.8286,-8013.1348,-8500.4199,-8974.8867,-9439.5479,-9890.5938,-10326.367,-10744.421,-11147.754,-11534.83,-11902.651,-12248.997,-12577.919,-12885.458,-13172.309,-13441.554,-13691.502,-13922.634,-14127.116,-14305.272,-14458.267,-14582.934,-14685.274,-14758.539,-14806.058,-14830.719,-14836.625,-14822.204,-14773.916,-14700.484,-14597.968,-14469.834,-14312.099,-14126.422,-13915.136,-13676.505,-13412.388,-13120.703,-12807.961,-12473.883,-12115.751,-11740.082,-11342.633,-10929.945,-10502.158,-10062.869,-9611.8271,-9146.6006,-8673.3545,-8191.7417,-7700.769,-7200.9346,-6695.8809,-6185.2378,-5670.8711,-5154.9995,-4643.4414,-4135.0015,-3629.2859,-3125.657,-2626.541,-2134.0662,-1646.4242,-1168.816,-699.63068,-245.34488,192.7984,618.76703,1033.223,1428.922,1807.2645,2165.6274,2507.6655,2826.2754,3120.4724,3395.2593,3647.6946,3879.4983,4086.3855,4265.1323,4421.6831,4554.3594,4657.8184,4736.9561,4792.6724,4822.3784,4830.3091,4815.9038,4773.9692,4706.4736,4614.8379,4491.3198,4337.8892,4158.002,3949.3147,3713.4622,3453.9114,3167.8179,2861.2598,2536.3259,2187.3623,1822.752,1437.5449,1034.8208,617.23962,183.35637,-270.79733,-738.95618,-1220.1345,-1710.7787,-2206.1941,-2706.4871,-3210.8625,-3721.0002,-4233.6387,-4747.7271,-5258.7578,-5771.3071,-6280.7759,-6791.0166,-7295.0229,-7794.4199,-8287.4189,-8771.6377,-9243.3457,-9702.2559,-10146.865,-10577.053,-10989.863,-11385.981,-11760.477,-12116.938,-12456.351,-12772.688,-13071.995),No.Rows = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300)),row.names = c(NA,300L),class = "data.frame") class = 
"data.frame")

我使用以下方法找到数据的峰值和谷值:

library(quantmod)
max <- findPeaks(try$Actuator.Force)
min <- findValleys(try$Actuator.Force)

结果是峰谷对应的 try data.frame 的 row.number。我想要的是与 Actuator.ForcefindPeaks 函数找到的 row.numbers 对应的 findValleys 峰值向量。

解决方法

如果最小值和最大值是 try 数据框的行索引,则可以获得 try 的一个子集:

> try[min,]
    Actuator.Force No.Rows
5        -404.0766       5
97      -5043.0415      97
193    -14822.2040     193
> try[max,]
    Actuator.Force No.Rows
3        -402.7260       3
7        -407.5543       7
133      4826.3135     133
253      4815.9038     253

如果您只想获取最大和最小行索引的 Actuator.Force 值:

> try[min,"Actuator.Force"]
[1]   -404.0766  -5043.0415 -14822.2040
> try[max,"Actuator.Force"]
[1] -402.7260 -407.5543 4826.3135 4815.9038

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