2017-07-04 47 views
0

我試圖子集一個數據幀的子集,用於創建條形圖使用plotlyPlotly不渲染正確情節與數據幀

resort_pos %>% subset(resort + pos > 5000)%>% 
mutate(pos_percentage = (pos*100)/(resort+pos)) %>% 
mutate(Source = as.factor(src)) %>% 
plot_ly(x= ~Source,y= ~pos_percentage, type = "bar") 

下面是resort_pos的頭部和resort_pos的子集

>>head(resort_pos) 
src resort positive 
1 ABL 45686  7352 
2 AGR  96  0 
3 AMD 15857 21077 
4 BAM 3806 141275 
5 BBI 416  54 
6 BDQ  5  0 

>>head(resort_pos %>% subset(resort + pos > 5000)%>% 
    mutate(pos_percentage = (pos*100)/(resort+pos)) %>% 
    mutate(Source = as.factor(src))) 

src resort positive pos_percentage Source 
1 ABL 45686  7352  13.86176 ABL 
2 AMD 15857 21077  57.06666 AMD 
3 BAM 3806 141275  97.37664 BAM 
4 BIL 73847 142660  65.89163 BIL 
5 BLR 52711 192061  78.46527 BLR 
6 BNO 44069 71089  61.73171 BNO 

下面是輸出:

enter image description here

x取得所有不同的值,但由於y在子集化數據框中不可用,所以它顯示空白。我怎樣才能繞過這個?

+0

請顯示一個可重現的例子。我想你想'resort_pos%>%filter((resort + pos)> 5000)%>%' – akrun

+0

我確實將子集輸出存儲在單獨的數據框中。它具有17個觀測值,而原始數據幀具有47個觀測值。然後在子集數據幀上使用圖形,但問題仍然存在。我將在編輯中包含數據框的頭部。 –

回答

0

對結果data.frame做droplevels()

+0

工作!謝謝。奇怪的是,使用ggplot繪圖並沒有這個問題。 –