我有一个包含以下结构的6的列表,我正在尝试提取特定元素并将它们存储在数据data.frame
中。
我申请了这个,
lapply(rmseErrorsHyperparameters, '[[', 2)
提取6个列表中每个列表的第2个元素,但是我尝试提取元素1, 2, 8, 9, 10, 11, 12
并将它们存储在data.frame
中。
如何应用lapply
从多个列表中提取多个元素?
我想远离for loop
,但我确实开发了一些有用的东西。
List of 6
$ :List of 12
..$ : num 0.954
..$ : num 0.902
..$ iter : num [1:50] 1 2 3 4 5 6 7 8 9 10 ...
..$ train_auc_mean: num [1:50] 0.901 0.925 0.933 0.938 0.94 ...
..$ train_auc_std : num [1:50] 0.00131 0.00144 0.00145 0.00117 0.00102 ...
..$ test_auc_mean : num [1:50] 0.845 0.873 0.883 0.887 0.89 ...
..$ test_auc_std : num [1:50] 0.00535 0.00511 0.00501 0.00306 0.00208 ...
..$ : num 0.6
..$ : num 1
..$ : num 8
..$ : num 0.01
..$ : num 1
$ :List of 12
..$ : num 0.975
..$ : num 0.902
..$ iter : num [1:50] 1 2 3 4 5 6 7 8 9 10 ...
..$ train_auc_mean: num [1:50] 0.912 0.943 0.953 0.958 0.961 ...
..$ train_auc_std : num [1:50] 0.000313 0.001633 0.002154 0.001437 0.000988 ...
..$ test_auc_mean : num [1:50] 0.84 0.868 0.877 0.882 0.886 ...
..$ test_auc_std : num [1:50] 0.00759 0.00568 0.00606 0.0046 0.00521 ...
..$ : num 0.6
..$ : num 1
..$ : num 10
..$ : num 0.01
..$ : num 1
$ :List of 12
..$ : num 0.986
..$ : num 0.901
..$ iter : num [1:50] 1 2 3 4 5 6 7 8 9 10 ...
..$ train_auc_mean: num [1:50] 0.923 0.954 0.966 0.972 0.975 ...
..$ train_auc_std : num [1:50] 0.003373 0.000954 0.001237 0.001268 0.001385 ...
..$ test_auc_mean : num [1:50] 0.843 0.86 0.869 0.876 0.879 ...
..$ test_auc_std : num [1:50] 0.00781 0.00558 0.00437 0.00446 0.00336 ...
..$ : num 0.6
..$ : num 1
..$ : num 12
..$ : num 0.01
..$ : num 1
$ :List of 12
..$ : num 0.97
..$ : num 0.905
..$ iter : num [1:50] 1 2 3 4 5 6 7 8 9 10 ...
..$ train_auc_mean: num [1:50] 0.904 0.927 0.934 0.939 0.942 ...
..$ train_auc_std : num [1:50] 0.00317 0.001007 0.000483 0.000321 0.000634 ...
..$ test_auc_mean : num [1:50] 0.851 0.874 0.882 0.886 0.889 ...
..$ test_auc_std : num [1:50] 0.00441 0.00469 0.00314 0.0021 0.00211 ...
..$ : num 0.6
..$ : num 1
..$ : num 8
..$ : num 0.05
..$ : num 1
$ :List of 12
..$ : num 0.986
..$ : num 0.905
..$ iter : num [1:50] 1 2 3 4 5 6 7 8 9 10 ...
..$ train_auc_mean: num [1:50] 0.914 0.942 0.954 0.959 0.962 ...
..$ train_auc_std : num [1:50] 0.002 0.0025 0.00183 0.00163 0.00165 ...
..$ test_auc_mean : num [1:50] 0.839 0.864 0.876 0.883 0.886 ...
..$ test_auc_std : num [1:50] 0.01109 0.00491 0.00341 0.00583 0.00588 ...
..$ : num 0.6
..$ : num 1
..$ : num 10
..$ : num 0.05
..$ : num 1
$ :List of 12
..$ : num 0.994
..$ : num 0.903
..$ iter : num [1:50] 1 2 3 4 5 6 7 8 9 10 ...
..$ train_auc_mean: num [1:50] 0.926 0.955 0.966 0.972 0.975 ...
..$ train_auc_std : num [1:50] 0.001425 0.001578 0.001289 0.000388 0.000585 ...
..$ test_auc_mean : num [1:50] 0.849 0.863 0.87 0.873 0.877 ...
..$ test_auc_std : num [1:50] 0.00396 0.00246 0.00168 0.00206 0.00385 ...
..$ : num 0.6
..$ : num 1
..$ : num 12
..$ : num 0.05
..$ : num 1
编辑:可重复的数据(给出3个列表)
rmseErrorsHyperparameters <- list(structure(list(0.953720666666667, 0.902024666666667, iter = 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),
train_auc_mean = c(0.900847, 0.925322, 0.933217666666667,
0.937899, 0.939881666666667, 0.941533, 0.943171, 0.944086333333333,
0.945105666666667, 0.945499333333333, 0.946013666666667,
0.946487333333333, 0.946805666666667, 0.947391666666667,
0.947904333333333, 0.948171, 0.948372, 0.948775666666667,
0.948961666666667, 0.949089666666667, 0.949282333333333,
0.949515333333333, 0.949729, 0.949931666666667, 0.950214,
0.950408333333333, 0.950526666666667, 0.950741666666667,
0.950901666666667, 0.950974333333333, 0.951204, 0.951391666666667,
0.951527, 0.951700333333333, 0.951852, 0.952065333333333,
0.952297666666667, 0.952352, 0.952467333333333, 0.952607333333333,
0.952758666666667, 0.952874, 0.952989666666667, 0.953099,
0.953177, 0.953303, 0.953435666666667, 0.953522666666667,
0.953621333333333, 0.953720666666667), train_auc_std = c(0.00130656368645379,
0.00143715204484666, 0.00145437668974947, 0.00116715066148399,
0.00102135215386405, 0.001040216644081, 0.0007501413200906,
0.000618024990456225, 0.000168056207610585, 0.00019217064197146,
0.000233129911495223, 0.000173805126926522, 7.24998085186385e-05,
0.000123259437557184, 0.000248668900857652, 0.000305493043992923,
0.000298051449809956, 0.000179232313412644, 0.000124408824327376,
0.000134566795183772, 0.000157286009986242, 7.76587979522523e-05,
9.5502181474364e-05, 0.00013903556699497, 0.000224861438935649,
0.000285930449998958, 0.000182870324645041, 5.62751176121424e-05,
6.70339878544736e-05, 0.000111263451334427, 1.09848344472199e-05,
5.10968585089493e-05, 0.000127061664571189, 0.000117033708158539,
0.000134484199517734, 0.000169881004335806, 0.00021561745941684,
0.000234644411689244, 0.000201337748188569, 0.000224707711391871,
0.00026645866894705, 0.000273621393006271, 0.000260636826814431,
0.000249801254268023, 0.000224385085443034, 0.000239233498084936,
0.000256416761282853, 0.000208327199841609, 0.000186449874201443,
0.000216847616553611), test_auc_mean = c(0.845180666666667,
0.87289, 0.883417666666667, 0.887464666666667, 0.889638,
0.891677, 0.893395666666667, 0.894677333333333, 0.895722666666667,
0.896079, 0.896685, 0.896954333333333, 0.897179333333333,
0.897862666666667, 0.898327, 0.898347666666667, 0.898519333333333,
0.898593, 0.898538666666667, 0.898881666666667, 0.898930666666667,
0.899154333333333, 0.899579666666667, 0.899588, 0.899621333333333,
0.899769666666667, 0.899889666666667, 0.900123, 0.900287,
0.900304333333333, 0.900334666666667, 0.900528333333333,
0.900673666666667, 0.900678333333333, 0.900742333333333,
0.900915, 0.901075333333333, 0.901172333333333, 0.901321333333333,
0.901251333333333, 0.901353, 0.901381333333333, 0.901401,
0.901458, 0.901524666666667, 0.901552333333333, 0.901666666666667,
0.901805666666667, 0.901894, 0.902024666666667), test_auc_std = c(0.00535254016538604,
0.00511385379794535, 0.00501275388937997, 0.00306479910522722,
0.00208109314221795, 0.00151193672708684, 0.00143246555125691,
0.00100637843557957, 0.00036190268781201, 0.000684047269396669,
0.000621566301042722, 0.0007523852441313, 0.000674434248569293,
0.000752687776439935, 0.000509961436560729, 0.000478554304392661,
8.21150948539223e-05, 0.000212886511230659, 0.000373224091013035,
0.000335336978012916, 0.000367374770830242, 0.000633420520210611,
0.000737041081249695, 0.000772994609763243, 0.000701223850790312,
0.000501746505144178, 0.000606038686051581, 0.000588715551018228,
0.000605050411180606, 0.000650917472167923, 0.000616455098897498,
0.000625198812707968, 0.000578552407945548, 0.000428446288608862,
0.00042560257930436, 0.000474561552082954, 0.000409679820873963,
0.000426660156156889, 0.000471251053651073, 0.000381387234040574,
0.000315255451951873, 0.000370166028862919, 0.000412830070046719,
0.000421547150523875, 0.000365637647015328, 0.000317595479881825,
0.000192721445350103, 0.000167464092834192, 0.000256383827013595,
0.000181586220406805), 0.6, 1, 8, 0.01, 1), .Names = c("",
"", "iter", "train_auc_mean", "train_auc_std", "test_auc_mean",
"test_auc_std", "", "", "", "", "")), structure(list(0.975268,
0.901870333333333, iter = 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), train_auc_mean = c(0.912264666666667,
0.942682666666667, 0.952919, 0.958222666666667, 0.960905,
0.963486333333333, 0.965091666666667, 0.965947333333333,
0.966826333333333, 0.967171666666667, 0.967852666666667,
0.968435333333333, 0.968922, 0.969134333333333, 0.969464666666667,
0.969697333333333, 0.970073, 0.970447, 0.970762333333333,
0.971054666666667, 0.971248, 0.971411, 0.971652333333333,
0.971839, 0.972016333333333, 0.972202, 0.972350333333333,
0.972558666666667, 0.972722666666667, 0.97275, 0.972899666666667,
0.972997666666667, 0.973106, 0.973184333333333, 0.973336333333333,
0.973449333333333, 0.973583666666667, 0.973719333333333,
0.973850666666667, 0.973977333333333, 0.974069, 0.974235,
0.974314666666667, 0.974482333333333, 0.974656333333333,
0.974724, 0.974813666666667, 0.974968333333333, 0.975138,
0.975268), train_auc_std = c(0.000312523421413819, 0.00163300466080798,
0.00215415923276346, 0.00143686564746747, 0.000987835343895248,
0.000740839313828873, 0.000590160053579232, 0.000531158691338602,
0.000400213554100089, 0.000395944721146784, 0.000502126367505942,
0.000558918201231462, 0.00061777396080374, 0.000516518043078283,
0.000497374663180272, 0.000516479320807822, 0.000573073002965596,
0.000592873229897056, 0.000610993362522018, 0.000455199101812945,
0.000518113887057779, 0.000503710895862012, 0.00048072815145692,
0.000556014987727594, 0.000555037736453781, 0.000476013305074048,
0.000467980294007687, 0.000450111344174371, 0.000455757489193164,
0.000493982455767807, 0.000491010070079461, 0.000503931432797898,
0.000545345761802356, 0.000593822270511266, 0.000632249599016631,
0.00066811642372566, 0.000654601320529102, 0.000729151256981975,
0.000694328132568313, 0.000653733040986669, 0.00057399883845651,
0.000542584555704569, 0.000551232759977503, 0.000475593897583828,
0.000506544722148041, 0.000482199820185887, 0.00050983156254615,
0.00044949922763234, 0.000440036362121999, 0.000444879758898845
), test_auc_mean = c(0.840288666666667, 0.867739666666667,
0.877456666666667, 0.882060666666667, 0.886183333333333,
0.889353333333333, 0.890635333333333, 0.891669, 0.893135333333333,
0.894148333333333, 0.894897333333333, 0.895717666666667,
0.896058, 0.896280666666667, 0.897029666666667, 0.897502,
0.898419333333333, 0.898818, 0.899138, 0.899278, 0.899156666666667,
0.899033, 0.899243333333333, 0.899451, 0.899592, 0.899672,
0.899825333333333, 0.89999, 0.900022666666667, 0.900159,
0.900148333333333, 0.900116333333333, 0.90006, 0.900287333333333,
0.900309666666667, 0.900404666666667, 0.900544, 0.900621,
0.900719, 0.900891666666667, 0.900977333333333, 0.901158333333333,
0.901193, 0.901216, 0.901379, 0.901473333333333, 0.901467333333333,
0.901642333333333, 0.901744666666667, 0.901870333333333),
test_auc_std = c(0.00759260861335601, 0.00568159281265906,
0.00606058711860765, 0.00460208954956346, 0.00521032131659716,
0.00481223955717371, 0.00534758714022542, 0.00501373320657221,
0.00522332437779054, 0.00501053831661823, 0.00451862665960563,
0.00418734795412832, 0.00410454244302279, 0.00429008953547065,
0.00422526151721584, 0.00361363169124975, 0.00343218456509149,
0.00341489131111607, 0.00340684086314736, 0.00321947697616025,
0.00324716864701969, 0.00334518350269685, 0.00344358556674244,
0.00342422438906803, 0.00356062503875735, 0.00340558139921157,
0.00352248599080419, 0.00385032007328738, 0.00374789294877404,
0.00361234559070411, 0.00348531073060053, 0.00356376957106013,
0.0035993061368398, 0.00373900720632646, 0.00371955645502605,
0.00380335854506354, 0.00387487599801613, 0.0039907811265388,
0.00389362924102362, 0.00384625899052781, 0.00389013533041259,
0.00389418389682193, 0.00389682751308114, 0.00379974007883679,
0.00366813304011136, 0.00370570383179282, 0.00362881296782636,
0.00360245928344571, 0.00361596500105378, 0.00364297473075583
), 0.6, 1, 10, 0.01, 1), .Names = c("", "", "iter", "train_auc_mean",
"train_auc_std", "test_auc_mean", "test_auc_std", "", "", "",
"", "")), structure(list(0.986081666666667, 0.900759666666667,
iter = 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), train_auc_mean = c(0.923201, 0.954012333333333,
0.965886333333333, 0.971817, 0.974798666666667, 0.976513333333333,
0.977855, 0.978818333333333, 0.979569333333333, 0.980097333333333,
0.980647, 0.981069666666667, 0.981384666666667, 0.981701,
0.982039333333333, 0.982191333333333, 0.982358333333333,
0.982601333333333, 0.982685666666667, 0.9829, 0.983054, 0.983189333333333,
0.983413333333333, 0.983520333333333, 0.983686666666667,
0.983874, 0.983958, 0.984078, 0.984192666666667, 0.984329,
0.984459333333333, 0.984518666666667, 0.984593666666667,
0.984693, 0.984787333333333, 0.984954666666667, 0.985048,
0.985093333333333, 0.985226666666667, 0.985373333333333,
0.985467, 0.985548666666667, 0.985613666666667, 0.985690333333333,
0.985754, 0.985816333333333, 0.985909, 0.985974333333333,
0.986022333333333, 0.986081666666667), train_auc_std = c(0.00337309778494156,
0.000954287284910768, 0.0012374032846389, 0.00126758457967465,
0.00138491740626589, 0.00102724042401721, 0.000771585812833018,
0.000698051733226662, 0.000890334893357128, 0.00078296459408162,
0.000696192980798405, 0.000467354493004126, 0.000437151638986949,
0.000300297629917649, 0.000198387387572796, 0.00020618653902695,
0.000126053780428038, 6.11137378472788e-05, 0.000122077388618434,
0.000149915531827955, 0.000131128436281003, 6.64646939629599e-05,
3.4586445789937e-05, 9.98743656543275e-05, 5.25758717997502e-05,
4.49221547717202e-05, 7.06021719171553e-05, 0.000131562405766592,
0.000103383858489548, 0.00012749117630173, 0.000158817155523642,
0.000150652654626341, 0.000160221374192249, 0.000183913023346036,
0.000255586036891089, 0.000294926356273579, 0.000271003074917812,
0.000224226571690963, 0.000255097802659949, 0.000255781590719397,
0.00028218551835888, 0.000257345854780765, 0.000257793630023705,
0.000310502102453261, 0.000299081928512292, 0.000305442120417927,
0.000282902810136112, 0.00032793122604585, 0.000332190039425057,
0.000350280205397519), test_auc_mean = c(0.843174, 0.859809333333333,
0.869149333333333, 0.875715, 0.879178, 0.882710333333333,
0.886139333333333, 0.887976, 0.888797666666667, 0.889788666666667,
0.89116, 0.892295666666667, 0.892904, 0.894294666666667,
0.895059333333333, 0.895289666666667, 0.896086666666667,
0.896733666666667, 0.897034, 0.897060333333333, 0.897346,
0.897755333333333, 0.897992666666667, 0.898205666666667,
0.898316333333333, 0.898394, 0.898278, 0.898530333333333,
0.898679, 0.898785, 0.899067, 0.899207666666667, 0.899292333333333,
0.899407666666667, 0.899604333333333, 0.899572333333333,
0.899580333333333, 0.899621, 0.899837666666667, 0.899916666666667,
0.900063, 0.900063666666667, 0.900242333333333, 0.900228,
0.900354, 0.900414333333333, 0.900434666666667, 0.900585666666667,
0.900673333333333, 0.900759666666667), test_auc_std = c(0.00781032397962867,
0.00558142014982742, 0.00437170266856225, 0.00445832053579263,
0.00335766952910974, 0.00302967394652508, 0.00297926001251079,
0.0023165677197148, 0.00211109155543872, 0.00291545494828301,
0.0025451626012121, 0.00221365856043241, 0.00264927612754718,
0.00302930314684934, 0.00277626395639074, 0.00261654636666304,
0.00266086030365632, 0.00289149065746182, 0.00287223583061064,
0.00270794649544151, 0.0024064273657694, 0.0026355839749263,
0.0021243697627431, 0.00222863251543668, 0.00228707095550478,
0.00246482629541952, 0.00231653016384161, 0.00227557206482534,
0.0022149583893877, 0.00221580429339538, 0.00199851211318163,
0.00176533931270203, 0.00168137747758829, 0.00146439892867653,
0.00173191249458254, 0.00161898164155395, 0.00142086413457795,
0.00151745115244377, 0.00156981449722054, 0.00150160366130567,
0.00133433803810075, 0.00124110712221691, 0.00129816930925153,
0.00123114282948807, 0.0012993701038096, 0.00133719141824208,
0.00133604125017374, 0.00112592046300703, 0.00100684601048679,
0.00108474031714288), 0.6, 1, 12, 0.01, 1), .Names = c("",
"", "iter", "train_auc_mean", "train_auc_std", "test_auc_mean",
"test_auc_std", "", "", "", "", "")))
答案 0 :(得分:1)
您可以使用
data <- do.call("rbind", lapply(rmseErrorsHyperparameters, '[', c(1:2, 8:12)))
将所有数据收集到data.frame中。 lapply
将对列表项进行提取,do.call("rbind", ...)
将它们全部加入到相同的data.frame中。
答案 1 :(得分:1)
作为脚注,您还可以使用Dplyr(v0.8.3)
data <- bind_rows(
lapply(rmseErrorsHyperparameters, '[', c(1:2, 8:12))