2016-08-11 42 views
1

下面的代码给出了一个单一列的图表,计数为a。我如何告诉ggvis同时考虑NA? 我想有点破解可能会将NA变成角色,但我想知道是否有更正式的方法来做到这一点。如何处理ggvis图表中的NA值?

data_frame(group=c("a","a",NA)) %>% 
group_by(group) %>% dplyr::summarise(count=n()) %>% 
ggvis(x=~group,y=~count) %>% layer_bars() 
+5

'ggvis'目前还没有一致的'NA'处理:https://github.com/rstudio/ggvis/issues/247 –

回答

3

可以使用方便的功能addNA一个明确的NA-水平增加的因素。这应该作为解决方法。此外,ggvis似乎甚至与文本标签“NA”有问题,因此您必须强制它使用scale_nominal("x", domain = c("a", NA))显示该标签,或者将标签重命名为“<NA>”,但呈现为“&lt;NA&gt; “我RStudio,所以它不是一个很好的解决方案)

data_frame(group=c("a","a",NA)) %>% 
    mutate(group = addNA(group)) %>% 
    group_by(group) %>% dplyr::summarise(count=n()) %>% 
    ggvis(x=~group,y=~count) %>% 
    layer_bars() %>% 
    scale_nominal("x", domain = c("a", NA)) 
+2

没为我工作,直到我在最后添加'scale_nominal(“x”,domain = c(“a”,NA))“。 – aosmith

+0

@aosmith感谢您的修复!我认为ggvis在实际的NAs方面存在问题。结果表明它也有“NA”作为因素水平的问题。 – AlexR