[英]map_dfr and bindling rows together based on columns in R
我正在尝试根据列名创建一个列表,然后将所有列表绑定在一起。
也就是说,我有第一个列表:
> myList[[1]] %>% data.frame() %>% select(c(1:2))
WTS FMC
frequency 1 1
nperiods 0 0
seasonal_period 1 1
trend 0.1758021 0.140052
spike 0.04209651 0.04940537
我想为数据中的每一列创建一个新列表,然后使用bind_rows
将列表2010 Jul
、 2010 Aug
和2010 Sep
绑定在一起。
我可以执行以下操作:
map_dfr(data.frame(myList), ~bind_rows(.), .id = "date")
这几乎得到了我想要的,但我想这样做并为每个列WTS
和FMC
等获取其中一个。
数据:
myList <- list(`2010 Jul` = structure(list(1, 0, 1, 0.175802105278148,
0.0420965089715215, -0.597180003813241, -0.14766101736596,
0.101328352458739, NA_real_, 1, 0.163542974434028, NA_real_,
-0.0477740942262392, 0.109285246298631, -0.585925108800292,
0.349534758601262, 1, 0, 1, 0.140051954024691, 0.0494053672229871,
-0.731689686416635, -0.165607865331302, -0.252997419985073,
NA_real_, 1, -0.0505136284783927, NA_real_, -0.172891705413366,
0.171035553843115, -0.389685810850311, 0.395230400055788,
1, 0, 1, 0.0534461538613374, 0.0231700091040301, -0.356613468922694,
-0.0999668254541441, -0.127071388891534, NA_real_, 1, -0.0372310379765763,
NA_real_, -0.124065837653166, 0.214832600571785, -0.252551509468299,
0.123852141180675, 1, 0, 1, 0.041796656791166, 0.0262360694498456,
-0.266921718141474, -0.0803839036263304, -0.128269552651254,
NA_real_, 1, -0.0651244706731801, NA_real_, -0.205637974697809,
0.151555475533217, -0.292968222735457, 0.107723199237638,
1, 0, 1, 0.25433724307978, 0.0224412849894418, -1.12954982181859,
-0.146142537909, -0.165760782142423, NA_real_, 1, 0.151156560509677,
NA_real_, -0.166767943225804, 0.282321896787354, -0.513571168467497,
0.571934734212278, 1, 0, 1, 0.0754993659336637, 0.0387283712994059,
-0.853707662110111, -0.0251051264639037, -0.155640882435377,
NA_real_, 1, 0.0578132817097772, NA_real_, -0.061111476402639,
0.404959638504767, -0.0639404592330979, 0.201777982385734,
1, 0, 1, 0.174669741802688, 0.0236268612206601, -1.04169291855456,
-0.0843655048351571, -0.658325339642133, NA_real_, 1, -0.325360383314808,
NA_real_, -0.727093163070252, 0.937170983212177, -0.767714278501687,
0.873631983600454, 1, 0, 1, 0.0212342532070486, 0.0394007679441418,
-0.343036121758394, -0.0509252272227679, -0.119680074500327,
NA_real_, 1, -0.0455646776030852, NA_real_, -0.0398983609027588,
0.337412411363141, 0.0192485531321964, 0.223377235550471,
1, 0, 1, 0.0420262338532703, 0.129212727423114, -0.438100122508869,
-0.042771290337182, -0.389638024842517, NA_real_, 1, -0.326954900702078,
NA_real_, -0.555804439643753, 0.310736075437147, -0.677496652871654,
0.493116631796998, 1, 0, 1, 0.598184608626656, 0.00485326113018123,
-1.55755544029203, -0.0566390666856906, -0.177252150724023,
NA_real_, 1, 0.057995193957956, NA_real_, -0.289185837730521,
0.180050213764505, -0.414345078778786, 0.193535375761028,
1, 0, 1, 0.568485402318989, 0.0119368452769537, -1.67771371104516,
-0.0263928835552806, -0.454975191345, NA_real_, 1, 0.0686977616512836,
NA_real_, -0.533085306700341, 0.446147099224813, -0.416815928407965,
0.249040354012687, 1, 0, 1, 0.124079903347872, 0.059118600048602,
-0.885885264087633, -0.0808876385366851, -0.060659659056956,
NA_real_, 1, 0.148533886538717, NA_real_, -0.00173087492998668,
0.344674083224914, -0.182813884409897, 0.146185243416273,
1, 0, 1, 0.0930926158625137, 0.0245329908921137, 0.509061201314714,
-0.058666146601623, -0.0356918805242959, NA_real_, 1, 0.000950336898647261,
NA_real_, -0.245464366660066, 0.33682941009751, -0.254338263672044,
0.367239900683189, 1, 0, 1, 0.22638632247172, 0.0218317533978287,
-0.852854792551597, -0.16522406381938, 0.167205818008961,
NA_real_, 1, 0.299103246969011, NA_real_, 0.337090742253813,
0.426672282245496, -0.0631643700301268, 0.107558529054556,
1, 0, 1, 0.184189030274566, 0.0177470314855779, -1.16461284208247,
-0.0835786581051569, -0.318545876407814, NA_real_, 1, 0.0642963953901268,
NA_real_, -0.301483310526926, 0.36126076411659, -0.408014673266521,
0.38067311290122, 1, 0, 1, 0.0764619219562191, 0.0229456293092152,
-0.399483875437517, -0.109463724994312, -0.0624895855715813,
NA_real_, 1, 0.0247766231933698, NA_real_, -0.175710273625244,
0.148883400498395, -0.391350369491028, 0.164652945563837,
1, 0, 1, 0.157413400293104, 0.0210925522480966, 0.559184312376902,
-0.170376937825492, -0.463695060059251, NA_real_, 1, -0.398949758420571,
NA_real_, -0.343559615134694, 0.360798780983868, -0.254653149412353,
0.291717976532446, 1, 0, 1, 0.157638226870364, 0.0328482314858161,
-1.04113661683743, -0.11461389672605, -0.227655536180246,
NA_real_, 1, 0.0955560244689036, NA_real_, -0.0850108661597532,
0.249052330398167, -0.121962432488975, 0.270531142248378), .Dim = c(16L,
18L), .Dimnames = list(c("frequency", "nperiods", "seasonal_period",
"trend", "spike", "linearity", "curvature", "e_acf1", "e_acf10",
"entropy", "x_acf1", "x_acf10", "diff1_acf1", "diff1_acf10",
"diff2_acf1", "diff2_acf10"), c("WTS", "FMC", "WGL", "SCG", "GPS",
"AOS", "CVC", "EMF", "SSY", "MGA", "WEX", "MT", "HXM", "CNS",
"LCM", "KGN", "SIHI", "JLS"))), `2010 Aug` = structure(list(1,
0, 1, 0.0233905158348703, 0.0208562122467506, -0.534541260410219,
0.0724848038424846, -0.243808681545836, NA_real_, 1, -0.127516468307146,
NA_real_, -0.0882273545301255, 0.330583666477203, -0.0544514809293154,
0.179612938516917, 1, 0, 1, 0.298243851692594, 0.0288988085684842,
-1.17329074859827, 0.167794305134058, -0.129125081312144,
NA_real_, 1, 0.165909888118736, NA_real_, 0.0234017388186864,
0.126122636351595, -0.0910583855529177, 0.179360806895702,
1, 0, 1, 0.065724074574338, 0.0758937621405237, -0.399747739700934,
0.108429436039378, -0.0667990493250848, NA_real_, 1, 0.0146134416445858,
NA_real_, -0.0265326096067546, 0.238490359616056, -0.317300024293075,
0.136078891269167, 1, 0, 1, 0.0359901363825194, 0.0727713985049959,
-0.261713912883042, 0.0760994399652499, -0.133814042822593,
NA_real_, 1, -0.0827578051666984, NA_real_, -0.117826507182037,
0.252189340156553, -0.355540397423096, 0.151183673456332,
1, 0, 1, 0.73385650012555, 0.004162899076158, -2.00737648513829,
0.0557091477539321, -0.261660339901219, NA_real_, 1, 0.451470983541603,
NA_real_, -0.288519428211535, 0.150745403548235, -0.543122218246143,
0.296612522913519, 1, 0, 1, 0.0649402281700383, 0.0378619493291227,
-0.31449739260034, 0.0988460944383464, 0.0349741429158428,
NA_real_, 1, 0.098161238113042, NA_real_, 0.0300972574757304,
0.298075123956731, -0.0887625952498301, 0.232199321985802,
1, 0, 1, 0.0945945759860801, 0.0180084376802645, -0.469510406384772,
0.153730038064492, -0.399294299223668, NA_real_, 1, -0.305460924007922,
NA_real_, -0.415074250523729, 0.222830245111534, -0.606351673786828,
0.374684747936308, 1, 0, 1, 0.0591309037250093, 0.0649064539127003,
-0.0744983518809387, 0.0920811715896319, 0.00528921345437106,
NA_real_, 1, 0.0298619700426544, NA_real_, 0.037634026581331,
0.362140624457385, -0.107462109231618, 0.2254760279785, 1,
0, 1, 0.078011344771787, 0.0697267856529186, -0.895566956749497,
-0.0499496267058433, -0.565731971800641, NA_real_, 1, -0.340406856638686,
NA_real_, -0.537251820856348, 0.290072188692432, -0.418146742408836,
0.178344451571795, 1, 0, 1, 0.036755839364403, 0.0608765681761267,
-0.0373907046624393, 0.10003472183405, -0.36540942843628,
NA_real_, 1, -0.341604813341389, NA_real_, -0.184126527521471,
0.165571048572808, -0.082428918609678, 0.160459761431743,
1, 0, 1, 0.155954127781764, 0.0165284207980147, -0.542789032914492,
0.198320667255402, -0.492235313036742, NA_real_, 1, -0.39030915972297,
NA_real_, -0.361944799122207, 0.428712468490625, -0.275063299692073,
0.341636357201519, 1, 0, 1, 0.0677160966850889, 0.0284434829900084,
-0.359449385908881, 0.113540625475898, -0.0349872275718705,
NA_real_, 1, 0.0516285716355073, NA_real_, 0.0458827167347926,
0.280987645964838, -0.0563357760675071, 0.101938565072249,
1, 0, 1, 0.319347071530101, 0.00980494397260724, 0.952800719371358,
0.0593643213576319, -0.159931065778718, NA_real_, 1, -0.161861522802606,
NA_real_, 0.0861865077322326, 0.462009189577021, 0.288750047974667,
0.412369625453985, 1, 0, 1, 0.24423399870397, 0.0156919487915331,
-1.35672952181182, 0.0754111723913473, -0.177255831987036,
NA_real_, 1, 0.2702466551225, NA_real_, 0.072432653719567,
0.398793873454873, 0.299718556657641, 0.420115516359753,
1, 0, 1, 0.145010697778435, 0.061864744065635, -0.634783939837577,
0.156947702469577, -0.0325408000915056, NA_real_, 1, 0.0909718902406596,
NA_real_, 0.0168167770621337, 0.118454773755493, -0.42986156681522,
0.189447158128956, 1, 0, 1, 0.272662492338871, 0.0320020691693299,
-1.35057407751299, -0.000704120068878284, -0.305058370459884,
NA_real_, 1, 0.0989171620469294, NA_real_, -0.345872268685382,
0.225882532526285, -0.523296429442332, 0.274117925854473,
1, 0, 1, 0.133849706665592, 0.0234607726133869, 0.385342516199894,
0.171489465028886, -0.522328366590807, NA_real_, 1, -0.444297376125095,
NA_real_, -0.550596521310195, 0.466264657679625, -0.73127378610922,
0.69157532319532, 1, 0, 1, 0.202865549667432, 0.0443986075890144,
-0.807925019780012, 0.171442275242251, 0.0629959271618186,
NA_real_, 1, 0.213447359336486, NA_real_, 0.242973171792414,
0.265885818267854, -0.0620290037554373, 0.141877034992979), .Dim = c(16L,
18L), .Dimnames = list(c("frequency", "nperiods", "seasonal_period",
"trend", "spike", "linearity", "curvature", "e_acf1", "e_acf10",
"entropy", "x_acf1", "x_acf10", "diff1_acf1", "diff1_acf10",
"diff2_acf1", "diff2_acf10"), c("WTS", "FMC", "WGL", "SCG", "GPS",
"AOS", "CVC", "EMF", "SSY", "MGA", "WEX", "MT", "HXM", "CNS",
"LCM", "KGN", "SIHI", "JLS"))), `2010 Sep` = structure(list(1,
0, 1, 0.114407589475582, 0.0235377481165926, -0.728800100661772,
-0.0166684916231905, -0.319561503372181, NA_real_, 1, -0.252283814071854,
NA_real_, -0.433907428334825, 0.494174288679032, -0.259632053945162,
0.345158784209255, 1, 0, 1, 0.0554648365804654, 0.0297035032516045,
-0.301137665508776, 0.0371842617719873, -0.153107729568536,
NA_real_, 1, -0.148125951621602, NA_real_, -0.309974262769443,
0.282319970549421, -0.256060952169572, 0.260036721023129,
1, 0, 1, 0.0724574536186097, 0.0506702652874201, -0.397515147429409,
-0.000875929043770737, -0.226741580969926, NA_real_, 1, -0.239426915169087,
NA_real_, -0.26443608261244, 0.380280023570942, -0.181952275816044,
0.287613920079175, 1, 0, 1, 0.0366387433543232, 0.0828210443160761,
0.0346015782281233, 0.0584760824131681, -0.0807409978271288,
NA_real_, 1, -0.0640076873681771, NA_real_, -0.241606619566609,
0.28402059698436, -0.32704318254068, 0.255565332273312, 1,
0, 1, 0.506821906250132, 0.0117517625384047, -1.57158954102578,
0.0777902977231915, 0.0323140578792685, NA_real_, 1, 0.314866952104353,
NA_real_, -0.184027731637231, 0.113495496807055, -0.416317148005885,
0.221007409079218, 1, 0, 1, 0.0789008969637934, 0.0227004903617495,
-0.270300272577158, 0.0385921685543045, -0.163539848233482,
NA_real_, 1, -0.186957341754706, NA_real_, 0.0122408218485358,
0.405097502405729, 0.156234747286005, 0.273301919830479,
1, 0, 1, 0.0250014845596822, 0.0302514181589841, -0.338784673049847,
-0.0859332071221103, -0.497829122832546, NA_real_, 1, -0.501527437157675,
NA_real_, -0.476584045508235, 0.580274617020235, -0.250869906535054,
0.356695266531789, 1, 0, 1, 0.0319333349525267, 0.0556081429363308,
0.147813225937377, 0.0607115815601036, -0.075824219265655,
NA_real_, 1, -0.0426184206883323, NA_real_, -0.0207223789747501,
0.385629184963258, -0.0532538380902457, 0.237605631059521,
1, 0, 1, 0.381518944029993, 0.0321886406040401, -1.06752151081575,
0.131205784717954, -0.280480506945643, NA_real_, 1, -0.179355245047458,
NA_real_, -0.106920170519719, 0.0714415677242584, -0.0319868419486709,
0.118669624281828, 1, 0, 1, 0.0121834121844098, 0.068237303825428,
0.0536306750135053, 0.0336173618788365, -0.369652200763938,
NA_real_, 1, -0.351748579579802, NA_real_, -0.528968821125061,
0.281681886913385, -0.514355713006262, 0.266023990706781,
1, 0, 1, 0.0287643057822889, 0.044676101917498, -0.0138724727466971,
-0.134010559894424, -0.73335419052835, NA_real_, 1, -0.71539381603517,
NA_real_, -0.658713675985, 0.50928626741049, -0.619760970527367,
0.416625800834141, 1, 0, 1, 0.05210630828958, 0.0276550837203792,
0.190816750390097, 0.0978766034871588, -0.0805703916378234,
NA_real_, 1, -0.0268457813914789, NA_real_, -0.00549001926408891,
0.267785723185472, -0.0608182434517501, 0.100506808744203,
1, 0, 1, 0, 0.0627792442320371, 0.255196051933168, -0.0382711160010135,
-0.386591712415439, NA_real_, 1, -0.357984708839978, NA_real_,
-0.368112450163228, 0.267135781124212, -0.197560540922087,
0.182171367812671, 1, 0, 1, 0.269386209436678, 0.0148715672740464,
-0.968523363062877, 0.0763244158585192, 0.0185934939902807,
NA_real_, 1, 0.0765904658501373, NA_real_, -0.161248155686918,
0.20111491459834, -0.273002230573575, 0.258423208707053,
1, 0, 1, 0.018597597094501, 0.0552754657963658, 0.143897330819771,
0.0353124852994875, -0.125202166775784, NA_real_, 1, -0.10138717345503,
NA_real_, -0.232282311284955, 0.358150791920914, -0.202251311791963,
0.313200193280975, 1, 0, 1, 0.203989370024047, 0.0224128873339424,
0.502551786048769, 0.170091454126145, -0.0446367518715121,
NA_real_, 1, -0.0199614715680664, NA_real_, -0.0784148935207206,
0.256326721120486, -0.629406417417173, 0.680388906963932,
1, 0, 1, 0.166310912865401, 0.0515699413907982, -0.563616415630654,
-0.124142897096449, -0.570353166601179, NA_real_, 1, -0.511575482342321,
NA_real_, -0.502130427060656, 0.424780030379441, -0.561486820277065,
0.520329930641319, 1, 0, 1, 0.125538977433979, 0.0316092331640379,
0.644167550608129, 0.108886405075484, 0.10582508645383, NA_real_,
1, 0.208780092739966, NA_real_, 0.0489489788996666, 0.285296904348623,
-0.161944089572295, 0.294280045785781), .Dim = c(16L, 18L
), .Dimnames = list(c("frequency", "nperiods", "seasonal_period",
"trend", "spike", "linearity", "curvature", "e_acf1", "e_acf10",
"entropy", "x_acf1", "x_acf10", "diff1_acf1", "diff1_acf10",
"diff2_acf1", "diff2_acf10"), c("WTS", "FMC", "WGL", "SCG", "GPS",
"AOS", "CVC", "EMF", "SSY", "MGA", "WEX", "MT", "HXM", "CNS",
"LCM", "KGN", "SIHI", "JLS"))))
使用tidyverse
,操作,行名称被删除或更改为默认的NULL
序列,因此在将list
元素绑定在一起之前,使用rownames_to_column
创建一个带有行名称的新列
library(dplyr)
library(purrr)
library(tibble)
myList %>%
map_dfr(~ .x %>%
as.data.frame %>%
select(1:2) %>%
rownames_to_column('rname')
, .id = 'date')
# date rname WTS FMC
#1 2010 Jul frequency 1 1
#2 2010 Jul nperiods 0 0
#3 2010 Jul seasonal_period 1 1
#4 2010 Jul trend 0.1758021 0.140052
#5 2010 Jul spike 0.04209651 0.04940537
#6 2010 Jul linearity -0.59718 -0.7316897
#7 2010 Jul curvature -0.147661 -0.1656079
#8 2010 Jul e_acf1 0.1013284 -0.2529974
#9 2010 Jul e_acf10 NA NA
# ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.