Henrik が述べたように、データを因子に入れる必要があります (少なくとも、これが最も簡単な方法です)。いくつかの偽のデータを使用した次の例を考えてみましょう...
#generate 1000 random uniform integers between 1 and 5
data <- floor(runif(1000, 1,6))
#make data a factor with given labels
fdata <- factor(data,
labels = c("No use",
"30 min",
"1 hour",
"2 hours",
"3+ hours"))
これは、プロットを使用してベース r で実行できます (y が指定されていない場合、barplot は必要ありません)。
#in base R, just use plot - when y is missing, barplot is produced
plot(fdata)
ggplot2 でプロットすることもできます
#in ggplot2
require(ggplot2)
#make a dataframe
df <- data.frame(id = seq(1:length(fdata)),
fdata = fdata)
#plot via geom_bar
ggplot(df, aes(fdata)) + geom_bar()
ordered=TRUE
元の例から進んで、レベルを指定することに加えて、以下に示すように設定する必要があります。そうしないと、「使用しない」がリストの最後に表示されます。
#get data into a factor (provided data plus "No use")
q1 <- c("No use"
,"1 hour"
,"1 hour"
,"30 min"
,"2 hours"
,"3+ hours"
,"3+ hours"
,"3+ hours"
,"3+ hours"
,"2 hours"
,"1 hour"
,"2 hours"
,"1 hour"
,"30 min")
q1f = factor(q1,
levels = c("No use",
"30 min",
"1 hour",
"2 hours",
"3+ hours"),
ordered=TRUE)
次に、上記のプロット ロジックを適用できます...