我有一个折线图,其具有特定星期几的置信水平的上限和下限,工作日的上下信心水平(如果是工作日)和周末(如果是周末),昨天的每小时数,以及前天每小时计算。如果日期不是星期一或星期六,我只想要前天的每小时计数,因为这条线与折线图无关。我有一个if else语句,它可以很好地显示图表但是给了我一个错误:
} 错误:“}”中的意外“}”
我真的想修复代码,因为我知道这可能会在我把它放入我的Shiny App时引起问题。这是代码:
if ncol(yesterday_line_chart) == 6 {
plot_ly(yesterday_line_chart, x = ~hour) %>%
add_trace(y = ~yesterday, name = 'yesterday', mode = 'lines', line = list(color = 'rgb(205, 12, 24)', width = 3)) %>%
add_trace(y = ~X95_up_conf_dow, name = 'dow upper conf', line = list(color = 'rgb(77, 201, 0)', width = 4, dash = 'dot')) %>%
add_trace(y = ~X95_low_conf_dow, name = 'dow lower conf', line = list(color = 'rgb(77, 201, 0)', width = 4, dash = 'dot')) %>%
add_trace(y = ~X95_up_conf_wd_we, name = 'we/wd upper conf', line = list(color = 'rgb(126, 142, 197)', width = 4, dash = 'dot')) %>%
add_trace(y = ~X95_low_conf_wd_we, name = 'we/wd lower conf', line = list(color = 'rgb(126, 142, 197)', width = 4, dash = 'dot')) %>%
layout(title = "Title",
xaxis = list(title = "Time"),
yaxis = list (title = "(count)"))
}
else {
plot_ly(yesterday_line_chart, x = ~hour) %>%
add_trace(y = ~yesterday, name = 'yesterday', mode = 'lines', line = list(color = 'rgb(205, 12, 24)', width = 3)) %>%
add_trace(y = ~day_bef_yest, name = 'day bef yest',mode = 'lines+markers') %>%
add_trace(y = ~X95_up_conf_dow, name = 'dow upper conf', line = list(color = 'rgb(77, 201, 0)', width = 4, dash = 'dot')) %>%
add_trace(y = ~X95_low_conf_dow, name = 'dow lower conf', line = list(color = 'rgb(77, 201, 0)', width = 4, dash = 'dot')) %>%
add_trace(y = ~X95_up_conf_wd_we, name = 'we/wd upper conf', line = list(color = 'rgb(126, 142, 197)', width = 4, dash = 'dot')) %>%
add_trace(y = ~X95_low_conf_wd_we, name = 'we/wd lower conf', line = list(color = 'rgb(126, 142, 197)', width = 4, dash = 'dot')) %>%
layout(title = "Title",
xaxis = list(title = "Time"),
yaxis = list (title = "(count)"))
}
我在R中使用它之前的python代码有条件地删除该列(day_before_yesterday),如果它是Mon或Sat,所以在R中这个代码检查是否有6列绘制第一个线图,否则绘制另一个有7列。我环顾四周,已经看到了几种有条件的情节,但没有一种方法可以保持我想要的美学。
答案 0 :(得分:2)
我不确定这是否是问题,但R似乎与大多数其他语言有不同的if else
规则。
尝试取出else
,而不是:
if(ncol(yesterday_line_chart) ==7)
并看看是否有帮助......
我注意到的另一件事是你的if语句中没有我认为必要的括号。