如何选择满足R中参数的N个资产

How to choose N number of assets that satisfy a parameter in R

我想选择 BETAdn 列总和为 0 的 4 项资产。下面调用大矩阵ALPHABETA&i运行得到满足sum to zero参数的资产子集。

AB <- subset(data.frame((ALPHABETA)), BETAdn+BETAdn >= -0.01 & BETAdn+BETAdn <= .01)

上面的代码returns下面的:

AB <- structure(list(ALPHAdn = c(0, -2e-04, -2e-04, -0.002, 0.0129, 
-0.0071, 7e-04, -0.0019, -2e-04, -2e-04, -2e-04, -0.0011, -2e-04, 
-2e-04, -2e-04, 0.001, -2e-04, -2e-04, -2e-04, -0.0068, -2e-04, 
-2e-04, -0.0016, -2e-04, -2e-04, -2e-04, -0.0029, 0.002, 3e-04, 
0, -2e-04, -2e-04, -2e-04, -2e-04, -0.0072, 0.0028, -2e-04, -2e-04, 
-2e-04, -2e-04, -0.0025, -0.003, -2e-04, -0.0026, -2e-04, -2e-04, 
-2e-04, -0.002, -2e-04, -2e-04, -2e-04, -2e-04, -2e-04, -2e-04, 
-2e-04, 0.0012, -9e-04, -2e-04, -2e-04, -2e-04, -2e-04, -2e-04, 
-2e-04, -2e-04, 0.0106, -2e-04), BETAup = c(0, 0.7181, 0.2041, 
2.0982, -3.6778, 0.2532, 0.0964, 0.4937, 0.6152, -0.597, -0.1563, 
-0.0014, 0.1627, -0.1742, -0.0131, 0.8372, 0.2327, -0.0019, -0.4405, 
1.3106, 0.44, -1.1557, 0.3253, -0.1607, 0.0171, 0.007, 1.0561, 
0.4863, 0.2045, 0.4859, 0.3233, 0.7361, -0.0787, 0.273, 0.9931, 
1.151, 0.1011, 0.1894, -0.2742, 0.0069, 0.1003, -0.2177, 0.0437, 
0.9002, 0.4438, -0.0501, -0.031, 0.4498, 0.0115, 0.0031, 1e-04, 
-0.0606, 0.0119, 1.4144, -0.0802, -0.004, 0.6779, -1.983, 0.818, 
0.2103, 0.204, 0.4613, 0.058, 0.3685, -1.9407, 1.1002), BETAdn = c(0, 
4e-04, 4e-04, 0.0012, 7e-04, 9e-04, -0.0034, -0.0011, 4e-04, 
4e-04, 4e-04, -0.0027, 4e-04, 4e-04, 4e-04, 0.0033, 4e-04, 7e-04, 
4e-04, 0.0048, 4e-04, 4e-04, -0.0021, 4e-04, 4e-04, 4e-04, -0.0047, 
-0.002, 4e-04, 2e-04, -9e-04, 4e-04, 4e-04, 4e-04, 0.0015, 0.005, 
4e-04, -1e-04, 0.0033, 4e-04, -0.0013, -0.0049, -0.001, 0.0048, 
4e-04, 4e-04, 4e-04, 0.0048, 4e-04, 4e-04, 4e-04, 4e-04, 4e-04, 
4e-04, 4e-04, 0.0046, -0.0023, 4e-04, 4e-04, 4e-04, 4e-04, 4e-04, 
4e-04, 4e-04, 0.0042, 4e-04), ALPHAup = c(0, -0.0107, -0.0029, 
4e-04, 0.027, 0.0137, 2e-04, -0.0016, -0.0043, 0.0084, -3e-04, 
-9e-04, 0.0032, -0.0018, 0.008, 0.0031, -8e-04, 0, 5e-04, 0.0061, 
0.0083, -9e-04, -4e-04, 0.0025, -0.005, 0.0011, 2e-04, -0.006, 
-0.0026, -4e-04, 0.0018, -0.0055, -3e-04, -0.0059, 0.0053, -0.0094, 
-0.002, 0.0015, 0.0021, 1e-04, 0.0048, 0.0101, -0.0015, 0.0068, 
0.0071, 0.0041, -2e-04, -0.0086, -2e-04, -6e-04, -2e-04, 0.0015, 
-0.0017, -0.005, -0.004, -0.0015, 0.0023, 0.0288, 0.0011, -0.0074, 
-0.0041, -0.0092, -0.0011, -0.0066, 0.0137, -0.0124), UPpval = c(NaN, 
0.7812, 0.5756, 0.039, 0.0162, 0.1637, 0.5131, 0.5469, 0.2043, 
0.5301, 0.1703, 0.8713, 0.3905, 0.1556, 0.4194, 0.1435, 0.0175, 
0.1676, 0.0891, 8e-04, 0.1421, 0.1439, 0.4381, 0.5572, 0.6719, 
0.3788, 0, 0.4341, 0.404, 0.1174, 0.6871, 0.0417, 0.1056, 0.9757, 
0.0019, 0.0102, 0.9733, 0.1693, 0.4, 0.1847, 0.6531, 0.385, 0.8424, 
7e-04, 0.2976, 0.6284, 0.2896, 0.926, 0.8516, 0.5919, 0.5761, 
0.837, 0.5985, 1e-04, 0.4427, 0.2718, 0.0776, 0.5231, 0.1577, 
0.4862, 0.9704, 0.9688, 0.9509, 0.8703, 0.2898, 0.1635), DNpval = c(NaN, 
0.5758, 0.324, 0.9876, 0.302, 0.433, 0.9699, 0.9317, 0.6168, 
0.3043, 0.9366, 0.8997, 0.7444, 0.7153, 0.5165, 0.8601, 0.7079, 
0.01, 0.9436, 0.6197, 0.5857, 0.9662, 0.9648, 0.184, 0.7238, 
0.544, 0.9857, 0.3622, 0.3005, 0.9561, 0.9477, 0.3751, 0.8279, 
0.4774, 0.6118, 0.1958, 0.4617, 0.7703, 0.6927, 0.6274, 0.809, 
0.2253, 0.6894, 0.466, 0.7238, 0.6158, 0.8311, 0.3922, 0.4567, 
0.6448, 0.6685, 0.3738, 0.6351, 0.5341, 0.6739, 0.4371, 0.851, 
0.2468, 0.9466, 0.1929, 0.4586, 0.4569, 0.3455, 0.4226, 0.6683, 
0.197)), .Names = c("ALPHAdn", "BETAup", "BETAdn", "ALPHAup", 
"UPpval", "DNpval"), row.names = c("DGS6MO", "FLAGSHIP.EXPRESS.INC", 
"AVESIS.INC", "FRANKLIN.ELECTRONIC.PUBLSHS.INC", "THERAGENICS.CORP", 
"AIRSENSORS.INC", "BANK.OF.EAST.TENNESSEE", "ADTEC.INC", "ORBIS.INC", 
"MAGIC.YEARS.CHILD...LRNG.CTR.INC", "DIGITAL.OPTRONICS.CORP", 
"SPECTRUM.INFORMATION.TECHS.INC", "ENTREE.CORP", "VITEL.FIBER.OPTICS.CORP", 
"ALS.FORMAL.WEAR.INC", "AMERICAN.ECOLOGY.CORP", "AUTHENTICOLOR.INC", 
"COMPARATOR.SYSTEMS.CORP", "DATATAB.INC", "DOUGLAS...LOMASON.CO", 
"GENERAL.BUILDERS.CORP", "EQUIPMENT.COMPANY.AMER", "SAN.CARLOS.MILLING.INC", 
"FORTUNE.NATIONAL.CORP", "KIMCO.ENERGY.CORP", "KREISLER.MANUFACTURING.CORP", 
"RUDDICK.CORP", "NORDSON.CORP", "TANDYCRAFTS.INC", "HUNT.MANUFACTURING.CO", 
"MOUNTAIN.MEDICAL.EQUIP.INC", "ALTEX.INDUSTRIES.INC", "RAND.CAPITAL.CORP", 
"S.F.E.TECHNOLOGIES", "UNO.RESTAURANT.CORP", "HIGH.YIELD.PLUS.FD.INC", 
"TELEPHONE.SPECIALISTS.INC", "PATRIOT.PREMIUM.FD.I", "SAGE.SOFTWARE.INC.INTERSOLV", 
"CITIZENS.SECURITY.GROUP.INC", "GATEWAY.FED.CORP", "ASIAMERICA.EQUITIES.LTD", 
"NORCEN.ENERGY.RESOURCES.LTD", "DUTY.FREE.INTERNATIONAL.INC", 
"CATTLEGUARD.INC", "TIMBERLINE.MINERALS.INC", "SUMMIT.FINANCIAL.CORP", 
"RATHBONE.KING...SEELEY.INC", "INTERNATIONAL.SPECIALTY.PRODUCTS", 
"CHIPPEWA.RESOURCES.CORP", "ADVANCED.PROMOTION.TECHS.INC", "BEVERLY.HILLS.FAN.COMPANY", 
"JAKO.INC", "NEVADA.GOLDFIELDS.CORP", "QUANTUM.VENTURES.GROUP.INC", 
"VINDICATOR.OF.FLORIDA.INC", "T.J.INTERNATIONAL.INC", "KWIK.PRODUCTS.INTERNATIONAL.CORP", 
"BETHLEHEM.RESOURCES.CORP", "TRIAN.EQUITIES.LTD", "CONSOLIDATED.MERCANTILE.CORP", 
"UNITED.SECURITY.FINL.CORP.IL", "EQUIVEST.FINANCE.INC", "I.V.C.I.CORP", 
"KINGS.ROAD.ENTERTAINMENT.INC", "SPORTING.LIFE.INC"), class = "data.frame")

问题是它 returns 66 项资产,但我只想要满足参数的最佳 4 项。我如何再次对其进行子集化以获得所需的输出?

您可以使用 top_ndplyr 到 select 前 n 行

library(dplyr)
top_n(AB, 4, BETAdn)

或使用 base R 中的 order,然后对顶部 'n' 行进行子集化

AB[order(-AB$BETAdn),][1:4,]