3

R は、パネルの順序をxyplot()アルファベット順 (文字列の場合) またはレベル順 (因子の場合) で決定します。アルファベット順ではなく時系列で表示したいテキストとして日付があります。

x <- sample(1:10, 10, replace = TRUE)
y <- sample(1:10, 10, replace = TRUE)
# overlapping 2010 and 2011
date <- rep(as.Date("2010-01-01") + sort(sample(200:400, 5)), each = 2)
striptext <- format(date, "%d-%b ...")
df <- data.frame(x, y, date, striptext)

これはうまくいきます:

xyplot(y ~ x | date, data = df)

しかし、これは日付を順不同にします:

xyplot(y ~ x | striptext, data = df)

ストリップに完全な日付は必要ありませんが、正しい順序で並べたいです。striptext順序付き因子を作成する以外に解決策はありますか?

4

1 に答える 1

4

のレベルをstriptext明示的に設定し、それを因子として保存して、ラティスが強制を行う必要がないようにします (これは、レベルがアルファ順で終了する場所です)。

set.seed(1)
x <- sample(1:10, 10, replace = TRUE)
y <- sample(1:10, 10, replace = TRUE)
# overlapping 2010 and 2011
date <- rep(as.Date("2010-01-01") + sort(sample(200:400, 5)), each = 2)
striptext <- format(date, "%d-%b ...")
## set the levels explicitly
df <- data.frame(x, y, date, 
                 striptext = factor(striptext, levels = unique(striptext)))
xyplot(y ~ x | striptext, data = df)
于 2011-02-01T22:22:26.783 に答える