簡體   English   中英

根據列表名稱重命名列表列表的第一列

[英]Rename the first column of a list of lists based on list of list name

我想更改xts對象中第一列(僅列)的名稱。 我可以手動將其更改為new_name

map(lst$out, ~setNames(., c("new_name")))

但我想將其更改為它來自的列表名稱,即XLE.AdjustedXLY.Adjusted

此外,我想再次映射數據並使用gsubsub刪除.Adjusted部分並將其替換為.Adjusted類的newcoladdition ,因此列將類似於XLE_newcoladditionXLY_newcoladdition或類似的內容。 目前,這些列稱為R-squared ,這些列不對應於 R 平方值。

數據:

lst <- list(out = list(XLE.Adjusted = structure(c(NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, 0.0000384731902815126, 0.000000143012663053849, 
-0.00000228454450596442, -0.0000291651533530965, -0.0000904805050174159, 
-0.000168265690229874, -0.0000944361667666877, -0.0000542087207706577, 
-0.00000814576951466056, 0.0000000363172185127288, 0.000155104185890834, 
0.000865661970820763, 0.00328564067864708, 0.00753164973777335, 
0.0166430011941428, 0.0309476632163461, 0.0461041726080778, 0.0658733064802141, 
0.0851727692479239, 0.109486739083708, 0.130615969007109, 0.140590647092036, 
0.139973605409315, 0.140530655156937), index = structure(c(1567468800, 
1567555200, 1567641600, 1567728000, 1567987200, 1568073600, 1568160000, 
1568246400, 1568332800, 1568592000, 1568678400, 1568764800, 1568851200, 
1568937600, 1569196800, 1569283200, 1569369600, 1569456000, 1569542400, 
1569801600, 1569888000, 1569974400, 1570060800, 1570147200, 1570406400, 
1570492800, 1570579200, 1570665600, 1570752000, 1571011200, 1571097600, 
1571184000, 1571270400, 1571356800, 1571616000, 1571702400, 1571788800, 
1571875200, 1571961600, 1572220800, 1572307200, 1572393600, 1572480000, 
1572566400, 1572825600, 1572912000, 1572998400, 1573084800, 1573171200, 
1573430400, 1573516800, 1573603200, 1573689600, 1573776000, 1574035200, 
1574121600, 1574208000, 1574294400, 1574380800, 1574640000, 1574726400, 
1574812800, 1574985600, 1575244800, 1575331200, 1575417600, 1575504000, 
1575590400, 1575849600, 1575936000, 1576022400, 1576108800, 1576195200, 
1576454400, 1576540800, 1576627200, 1576713600, 1576800000, 1577059200, 
1577145600, 1577318400, 1577404800, 1577664000), tzone = "UTC", tclass = "Date"), class = c("xts", 
"zoo"), .Dim = c(83L, 1L), .Dimnames = list(NULL, "R-squared")), 
    XLY.Adjusted = structure(c(NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, -0.00000153351240868238, -0.0000110091582720151, 
    -0.00000123798659765995, 0.00000403089685979986, 0.0000453321641711637, 
    0.000104499413780434, 0.000237683413898733, 0.000496060674793693, 
    0.00153752883156175, 0.00352116004623529, 0.00462348774592221, 
    0.00721325518774014, 0.0118978324675292, 0.0173898804553095, 
    0.0212113834804498, 0.0268701588861073, 0.0298005040812393, 
    0.0359188638623057, 0.041008553224913, 0.0446312340186835, 
    0.0514417102348212, 0.0573353582289463, 0.0583060289649912, 
    0.058755339213546), index = structure(c(1567468800, 1567555200, 
    1567641600, 1567728000, 1567987200, 1568073600, 1568160000, 
    1568246400, 1568332800, 1568592000, 1568678400, 1568764800, 
    1568851200, 1568937600, 1569196800, 1569283200, 1569369600, 
    1569456000, 1569542400, 1569801600, 1569888000, 1569974400, 
    1570060800, 1570147200, 1570406400, 1570492800, 1570579200, 
    1570665600, 1570752000, 1571011200, 1571097600, 1571184000, 
    1571270400, 1571356800, 1571616000, 1571702400, 1571788800, 
    1571875200, 1571961600, 1572220800, 1572307200, 1572393600, 
    1572480000, 1572566400, 1572825600, 1572912000, 1572998400, 
    1573084800, 1573171200, 1573430400, 1573516800, 1573603200, 
    1573689600, 1573776000, 1574035200, 1574121600, 1574208000, 
    1574294400, 1574380800, 1574640000, 1574726400, 1574812800, 
    1574985600, 1575244800, 1575331200, 1575417600, 1575504000, 
    1575590400, 1575849600, 1575936000, 1576022400, 1576108800, 
    1576195200, 1576454400, 1576540800, 1576627200, 1576713600, 
    1576800000, 1577059200, 1577145600, 1577318400, 1577404800, 
    1577664000), tzone = "UTC", tclass = "Date"), class = c("xts", 
    "zoo"), .Dim = c(83L, 1L), .Dimnames = list(NULL, "R-squared"))))

我們可以使用imap並且這也包括.y作為list元素名稱。 請注意, set_namessetNames用於data.frame/tbl_df/data.table 在這里,它是一個matrix對象。 所以,一種選擇是做任務

library(purrr)
lst$out <- imap(lst$out, ~  {colnames(.x)[1] <- .y; .x})

map_chr(lst$out, colnames)
#  XLE.Adjusted   XLY.Adjusted 
#"XLE.Adjusted" "XLY.Adjusted" 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM