r-流持续时间曲线-列表中具有数据帧名称的标题



我想为每个站点的每日流量创建一条流量-持续时间曲线(FDC(。每个站点的每日流量保存为列表中的动物园对象。当我为每个工作站绘制FDC时,我想在标题中放入与扩展名相对应的列表中数据帧的名称。

这是我的列表的结构

> str(listDF_zoo)
List of 2
$ 094985005:‘zoo’ series from 2007-10-31 to 2020-09-29
Data: Named num [1:4718] 0 0 0 0 0 0 0 0 0 0.01 ...
..- attr(*, "names")= chr [1:4718] "1" "2" "3" "4" ...
Index:  Date[1:4718], format: "2007-10-31" "2007-11-01" "2007-11-02" "2007-11-03" ...
$ 09498501 :‘zoo’ series from 1995-10-01 to 2020-09-29
Data: Named num [1:9131] 0.14 0.08 0.08 0.07 0.07 0.06 0.07 0.07 0.07 0.07 ...
..- attr(*, "names")= chr [1:9131] "1" "2" "3" "4" ...
Index:  Date[1:9131], format: "1995-10-01" "1995-10-02" "1995-10-03" "1995-10-04" ... 

这是我正在使用的代码:

FDC <- lapply(listDF_zoo,function(x){fdc(x, main=names(x))})

main=names(x)的部分不起作用,这就是我想要更改的部分

您可以使用purrrimap,它可以访问数据和名称:

FDC <- purrr::imap(listDF_zoo, ~fdc(.x, main=.y))
不幸的是,

lapply无法访问它正在使用的列表的名称。一个常见的解决方法是使用索引,例如

lapply(seq_along(listDF_zoo),
function(i) fdc(listDF_zoo[[i]], main = names(listDF_zoo)[i])
)

base R中带有Map的选项

Map(fdc, listDF_zoo, main = names(listDF_zoo))

最新更新