我希望使用lapply或pmap设置多个lapply。
library(tidyverse)
library(lubridate)
library(echarts4r)
set.seed(1)
size = 24 * 20
time <-
seq(
from = as.POSIXct("2021-01-01 00:00", tz = "UTC"),
length.out = size,
by = "hour"
)
white.noise <- rnorm(n = size)
test_df <- tibble(time, value = cumsum(white.noise))
remarks <-
tibble(time = sample(time, 10),
comment = paste("test", sample(1:100, 10)))
test_df %>%
e_charts(x = time) %>%
e_line(serie = value) %>%
e_legend_select(1) %>%
e_datazoom(type = "slider") %>%
e_theme("dark") %>%
e_tooltip(trigger = "axis") %>%
e_mark_line(data = list(xAxis=remarks$time[1] ), title = remarks$comment[1]) %>%
e_mark_line(data = list(xAxis=remarks$time[2] ), title = remarks$comment[2]) %>%
e_mark_line(data = list(xAxis=remarks$time[3] ), title = remarks$comment[3]) 我尝试了以下代码来使用e_mark_line添加多个pmap,但是它不起作用:
test_df %>%
e_charts(x = time) %>%
e_line(serie = value) %>%
e_legend_select(1) %>%
e_datazoom(type = "slider") %>%
e_theme("dark") %>%
e_tooltip(trigger = "axis") %>%
{pmap(remarks,~e_mark_line(data=list(xAxis=..1),title==..2))}发布于 2022-01-03 09:24:19
不确定这是否可以通过pmap实现。对我来说,实现您想要的结果的更自然的方法是使用purrr::reduce2而不是pmap,如下所示:
library(echarts4r)
library(magrittr)
library(purrr)
test_df %>%
e_charts(x = time) %>%
e_line(serie = value) %>%
e_legend_select(1) %>%
e_datazoom(type = "slider") %>%
e_theme("dark") %>%
e_tooltip(trigger = "axis") %>%
reduce2(
.x = remarks$time, .y = remarks$comment,
.f = function(x, y, z) e_mark_line(x, data = list(xAxis = y), title = z),
.init = .
)

数据
set.seed(1)
size <- 24 * 20
time <- seq(
from = as.POSIXct("2021-01-01 00:00", tz = "UTC"),
length.out = size,
by = "hour"
)
white.noise <- rnorm(n = size)
test_df <- data.frame(time, value = cumsum(white.noise))
remarks <- data.frame(
time = sample(time, 10),
comment = paste("test", sample(1:100, 10))
)https://stackoverflow.com/questions/70562164
复制相似问题