Notes-List

list概述

表是一种特别的对象集合,它的元素也由序号(下标)区分,但是各元素的类型可以是任意对象,不同元素不必是同一类型。元素本身允许是其它复杂数据类型,比如,列表的一个元素也允许是列表。例如:

> rec <- list(name="李明", age=30, scores=c(85, 76, 90))
> rec
$name
[1] "李明"

$age
[1] 30

$scores
[1] 85 76 90

> rec[[2]]
[1] 30
> rec[[3]][2]
[1] 76

  

修改list元素

列表的元素可以修改,只要把元素引用赋值即可。如:
> rec$age <- 45
> rec$age <- list(19, 29, 31)
 
可以任意修改一个列表元素。如果被赋值的元素原来不存在,则列表延伸以包含该新元素。
通过新建空list再给空list赋值,来构建list of list(多级分层),同时可利用循环。
 
  r <- list()
for (Scenario in sort(unique(param_scenario_rtn$SCENARIOS))){
  r$position[[Scenario]] <- data_position
  r$stat[[Scenario]] <- key_info
  r$stat_ratio[[Scenario]] <- key_info_ratio
  r$pl_amt[[Scenario]] <- PL_temp
  r$pl_ratio[[Scenario]] <- PL_ratio
}

 

批量提取list指标

方法一:循环

方法二:lapply/sapply

subdate<- function(x){
x$DATE
}
sapply(s,subdate)

 

合并list

1. c(list(1), list(2))

2.list <- list(list(1), list(2))

 

unlist

unlist(x)生成一个包含x所有元素的向量。作用是,展平数据列表。
> head(unlist(r),10)

position.0_Bad.date1  position.0_Bad.date2  position.0_Bad.date3  position.0_Bad.date4  position.0_Bad.date5 
              "17865"               "17865"               "17865"               "17865"               "17865" 
position.0_Bad.date6  position.0_Bad.date7  position.0_Bad.date8  position.0_Bad.date9 position.0_Bad.date10 
              "17865"               "17865"               "17865"               "17865"               "17865" 

  

posted @ 2018-12-10 13:06  Zoe-D  阅读(130)  评论(0编辑  收藏  举报