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"