不幸的是,
我想为每个站点的每日流量创建一条流量-持续时间曲线(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)
的部分不起作用,这就是我想要更改的部分
您可以使用purrr
的imap
,它可以访问数据和名称:
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))