Изменить имена списков в списке - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть список с элементами "a" и "b", которые являются объектами xts с длиной от 2010-01-01 до 2020-03-03

>List
 $a         col1 col2
 2020-01-01 7.50 50000     
 2020-01-02 7.55 40000 
 $b         col1 col2
 2020-01-01 4.50 50000     
 2020-01-02 4.70 35000

Затем я использую функцию split () для разделите их по неделям, и результат будет таким:

>List
 $a[[1]]    col1  col2
 2020-01-01 7.50 50000
 $a[[2]]    col1  col2 
 2020-01-02 7.55 40000 
 $b[[1]]    col1  col2
 2020-01-01 4.50 50000
 $b[[2]]    col1  col2
 2020-01-02 4.70 35000

Как изменить имена списков, потому что из этой функции разделения я получаю число для имени моего элемента. Я ищу это:

 >List
  $a          col1  col2
  2020-01-01  7.50 50000 
  $a          col1  col2 
  2020-01-02  7.55 40000
  $b          col1  col2
  2020-01-01  4.50 50000 
  $b          col1  col2
  2020-01-02  4.70 35000

1 Ответ

0 голосов
/ 26 апреля 2020

Может быть, вы можете попробовать код ниже

Listout<- setNames(unlist(lapply(List, function(x) split(x,seq(nrow(x)))),recursive = FALSE),
                   rep(names(List),sapply(List,nrow)))

такой, что

> Listout
$a
           col1  col2
2020-01-01  7.5 50000

$a
           col1  col2
2020-01-02 7.55 40000

$b
           col1  col2
2020-01-01  4.5 50000

$b
           col1  col2
2020-01-02  4.7 35000

ДАННЫЕ

List <- list(a = data.frame(col1=c(7.5,7.55),col2 = c(5e4,4e4),row.names = c("2020-01-01","2020-01-02")),
             b = data.frame(col1=c(4.5,4.7),col2 = c(5e4,3.5e4),row.names = c("2020-01-01","2020-01-02")))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...