1

1 つの条件 (x1) には 4 つのレベルがあり、もう 1 つの条件 (x2) には 2 つのレベルがあります。グラフには、変数 x1 と x2 ごとにストライプがあります。

df <- data.frame(y = runif(100,0,10)
                 , x1 = rep(c("A","B","C","D"),25)
                 , x2 = as.numeric(c(runif(100)<0.5))
                 )
histogram( ~y | x1 + as.factor(x2), data=df)

x1 のレベルを変更したいと思います。

私は試しました:

histogram( ~y | x1 + as.factor(x2)      
          , data=df
          , strip = strip.custom(
                     , factor.levels = c("no","yes"))
                     )
)

しかし、レベル条件 x2 を割り当てる方法がわかりません。ヒントをいただければ幸いです。

4

1 に答える 1

2

Webを検索すると、独自のストリップ関数を定義するソリューションが見つかりました。

my.strip <- function(which.given, ..., factor.levels) {
             levs <- if (which.given == 2) c("no","yes") #levels for your second factor (x2)
                      else c("AAA", "BBB", "CCC", "DDD") #levels for your first factor (x1)
              strip.default(which.given, ..., factor.levels = levs)
           }

histogram( ~y | x1 + as.factor(x2) , data=df, strip = my.strip)

ここに画像の説明を入力

編集 - useOuterStrips() を使用して独自のストリップを定義します

library(latticeExtra)
useOuterStrips(histogram( ~y | x1 + as.factor(x2) , data=df), 
               strip =strip.custom(factor.levels = c("AAA","BBB","CCC","DDD")),
               strip.left=strip.custom(factor.levels = c("no","yes")))

ここに画像の説明を入力

于 2013-01-03T18:05:23.377 に答える