3

我有使用 dygraphs 绘制的时间序列数据。现在我想遮蔽一些事件。这些事件的起点和终点存储在一个数据框中。但是,当我尝试编写一个添加多个阴影的函数时,我总是会收到错误消息。

我曾尝试直接在代码中使用 for 循环,但随后我收到错误消息,即找不到我的虚拟变量。我试过用for循环编写一个函数,但是当我应用它时,它使用的第一个参数是“。”。这当然会破坏功能。

for (i in 1:length(dataframe$start)){
dyShading(from = dataframe$start[i], to = dataframe$end[i])
}
addshading <- function(periods){
  for (i in 1:length(periods[,1])){
    x <-dyShading(from = periods$start[i], to = periods$end[i])
  }
  x
}

之后直接运行 for 循环dygraph() %>%会给出以下错误消息:

function_list[k] 中的错误:找不到对象“i”

addshading(dataframe)之后直接运行dygraph() %>%会出现以下错误消息:

添加阴影(。,数据框)中的错误:未使用的参数(数据框)

我希望我说清楚了,我是新来寻求编码方面的帮助。

4

1 回答 1

3

您需要先分配dygraph()给一个对象,然后使用dyShading()-增量更新该对象

p <- dygraph(your_data)

for (i in 1:nrow(dataframe)) {
  p <- p %>% dyShading(from = dataframe$start[i], to = dataframe$end[i])
}

print(p)
于 2019-06-14T13:59:04.813 回答