【问题标题】:How to reorder this R lattice barchart manually?如何手动重新排序这个 R 格子条形图?
【发布时间】:2016-11-20 00:37:31
【问题描述】:

我通过factor(...) 明确排序到级别但在 Rplots.pdf 中未观察到其效果的代码

# data
# http://stackoverflow.com/a/40694900/54964 

summary(datm)

datm$male.Nij <- factor(datm$male.Nij, c("Sinus", "Arr/AHB", "Digoxin arr", "Furosemide arr"))

summary(datm)

# http://stackoverflow.com/a/6359164/54964
library(lattice)
lvs = unique(dat$male.Nij) # TODO maybe here something?  
barchart(variable ~ value|group + factor(male.Nij, levels=lvs), 
  groups=gender, 
  data=datm, 
  auto.key=list(space='right')
)

datm$male.Nij &lt;- factor(...) 后输出正确,但打印到 Rplots.pdf 中仍显示原始顺序

          male.Nij     gender             group              variable 
 Arr/AHB       :32   Length:128         Length:128         N11    :16  
 Digoxin arr   :32   Class :character   Class :character   N22    :16  
 Furosemide arr:32   Mode  :character   Mode  :character   N33    :16  
 Sinus         :32                                         N44    :16  
                                                           N21    :16  
                                                           N31    :16  
                                                           (Other):32 
           male.Nij 
 Sinus         :32   
 Arr/AHB       :32   
 Digoxin arr   :32   
 Furosemide arr:32  

测试 user20650 的提案

代码

summary(datm)

barchart(variable ~ value|group + male.Nij, 
  groups=gender, 
  data=datm, 
  auto.key=list(space='right')
)

输出:没有变化,仍然输出错误

R:3.3.2
操作系统:Debian 8.5

【问题讨论】:

  • @user20650 您的任何建议都没有帮助:同样的错误输出。请看尸体。还有什么可以考虑的吗?
  • 嗨@masi ..我无法重现这个。请看chat.stackoverflow.com/rooms/128534/masi-lattice
  • @user20650 我的系统中粘贴的代码没有得到预期的结果。我得到速尿、地高辛、Arr 和 Sinus。预期结果是 Sinus、Arr、Digoxin 和 Furosemide。

标签: r bar-chart lattice


【解决方案1】:

根据user20650的cmets等迭代回答

datm$male.Nij <- factor(datm$male.Nij, c("Sinus", "Arr/AHB", "Digoxin arr", "Furosemide arr"))

# http://stackoverflow.com/a/6359164/54964
library(lattice)
lvs = unique(dat$male.Nij) # for ordering facets    
barchart(variable ~ value|group + factor(male.Nij, levels=rev(lvs)),
factor(male.Nij, levels=lvs), 
  groups=gender, 
  data=datm, 
  auto.key=list(space='right')
)

需要应用第一行和rev(lvs)。 这种行为在其他一些 R 系统中有所不同,原因未知。

【讨论】:

    猜你喜欢
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    • 2014-07-07
    相关资源
    最近更新 更多