1

我有一个带有两个条件的格子图:一个条件 (x1) 有 4 个级别,一个条件有 2 个级别 (x2)。该图对每个变量 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

在网上搜索找到定义自己的剥离功能的解决方案。

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 回答