簡體   English   中英

R圖僅按指定級別對級別重新排序

[英]R graph reorder a factor by levels for only a specified level

我試圖創建一個圖形,其中x軸(因子)按y軸的降序(數值)重新排序,但適用於另一個因子的兩個級別之一。

最初,我嘗試使用以下代碼:

reorder(factor1, desc(value1))

但是,此代碼僅按每個factor2 2下的兩個值的總和重新組織圖形(按降序排列)(我推測); 而我只能在重組中的數據作為一個等級( 感興趣的"A"下) factor2

以下是一些示例數據,以便更好地說明。

sampledata <- data.frame(factor1 = c("A", "A", "B", "B", "C", "C", "D", "D", "E", "E", 
                                     "F", "F", "G", "G", "H", "H", "I", "I", "J", "J"),
                         factor2 = c("A", "H", "A", "H", "A", "H", "A", "H", "A", "H",
                                     "A", "H", "A", "H", "A", "H", "A", "H", "A", "H"), 
                         value1 = c(1, 5, 6, 2, 6, 8, 10, 21, 30, 5, 
                                    3, 5, 4, 50, 4, 7, 15, 48, 20, 21))

這是我之前使用的:

sampledata %>%
   ggplot(aes(x=reorder(factor1, desc(value1)), y=value1, group=factor2, color=factor2)) + 
    geom_point()

我想按特定級別(比如factor2=="A"reorder的原因是我可以查看factor2=="H"的值偏離"A"點的任何偏差。

我希望使用tidyversedplyr作為解決此問題的手段。

library(ggplto2)
library(dplyr)

sampledata %>% 
  mutate(value2 = +(factor2=="A")*value1) %>% 
  ggplot(aes(x=reorder(factor1, desc(value2 + value1/max(value1))), y=value1, 
             group=factor2, color=factor2)) + 
  geom_point() +
  xlab("factor1")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM