如何手动重新排序此 R 格条形图?
How to reorder this R lattice barchart manually?
我按 factor(...)
明确排序的代码,但在 Rplots.pdf
中未观察到其效果
# data
#
summary(datm)
datm$male.Nij <- factor(datm$male.Nij, c("Sinus", "Arr/AHB", "Digoxin arr", "Furosemide arr"))
summary(datm)
#
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 <- 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
OS:Debian 8.5
答案基于 user20650 的评论和其他迭代
datm$male.Nij <- factor(datm$male.Nij, c("Sinus", "Arr/AHB", "Digoxin arr", "Furosemide arr"))
#
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 系统中有所不同,原因不明。
我按 factor(...)
明确排序的代码,但在 Rplots.pdf
# data
#
summary(datm)
datm$male.Nij <- factor(datm$male.Nij, c("Sinus", "Arr/AHB", "Digoxin arr", "Furosemide arr"))
summary(datm)
#
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 <- 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
OS:Debian 8.5
答案基于 user20650 的评论和其他迭代
datm$male.Nij <- factor(datm$male.Nij, c("Sinus", "Arr/AHB", "Digoxin arr", "Furosemide arr"))
#
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 系统中有所不同,原因不明。