要声明:我正在寻找的所有东西都像if语句,如果数据框没有行,它会以某种方式忽略整个add_trace函数。R - 忽略空?
我有下列R-代码:
g <- plot_ly(df, x = ~Day) %>%
add_trace(data=df[which(df$FcNum==1),], y = ~ProjAmount, name = 'Line 1', hoverinfo = "text", text = ~paste('Projected Amt: ', round(ProjAmount,2)), mode = 'lines', width = 1, connectgaps = "false") %>%
add_trace(data=df[which(df$FcNum==2),], y = ~ProjAmount, name = 'Line 2', hoverinfo = "text", text = ~paste('Projected Amt: ', round(ProjAmount,2)), mode = 'lines', width = 1, connectgaps = "false")
我的数据帧是这样的:
Day Amount ProjAmt FcNum
1 10.4 55 1
1 10.4 37 2
2 22.1 55 1
2 22.1 37 2
3 43.5 55 1
3 43.5 37 2
4 24.1 55 1
4 24.1 55 2
... ... ...
34 37.8 75 1
34 37.8 99 2
35 12.8 75 1
35 12.8 99 2
我使用的可视化工具失败的脚本时,我就FcNum过滤(这样当我添加一个过滤器的视觉,并说“只给我价值,其中FcNum是1”)。可视化失败,因为FcNum == 2中不再有值,并且它返回以下错误消息:“错误:变量必须是长度为1或1”。
(有啥幕后发生的事情是它的过滤数据帧到这个样子,注意到在FcNum列中的值:
Day Amount ProjAmt FcNum
1 10.4 55 1
2 22.1 55 1
3 43.5 55 1
4 24.1 55 1
... ... ...
34 37.8 75 1
35 12.8 75 1
换句话说,当代码3号线没有返回值,因为它要求每个变量的值都是1或1,所以无法显示图形。
是否有一个函数,可能在基数R中允许我在数据框为空时设置替代值?
我试过了像
add_trace(data=na.omit(df[which(df$FcNum==2),]), y = ~ProjAmount, name = 'Line 2', hoverinfo = "text", text = ~paste('Projected Amt: ', round(ProjAmount,2)), mode = 'lines', width = 1, connectgaps = "false")
....但那并没有工作。
ProjAmount与ProjAmt是同一个变量吗? – jsb
@jsb - 是的,你是对的 – james5