关于2个因子变量的箱线图

时间:2019-02-24 07:00:51

标签: r

我有一个数字变量和两个因子变量,一个具有两个级别,另一个具有三个级别。我想构造一个箱形图拆分,使图形显示为基于一个第二级因子变量的水平具有两个第一级因子的箱形图。对于所有第二级因素,依此类推。

set.seed(100)
x <- rnorm(n = 500, mean = 25, sd = 5)
status <- sample(c(rep(x = "paid", 218), rep("non-paid", 282)))
category <- sample(c(rep("action", 193), rep("product", 129), rep("inspiration", 178)))
df <- data.frame(x, status, category)

boxplot(df$x ~ df$status[df$category == "action"])

但是。它给出了可变长度不同的错误。

1 个答案:

答案 0 :(得分:1)

您要么需要使用数据参数(可能附带一个子集参数,要么在公式的两边都具有相同的选择规则:

boxplot(df$x[df$category == "action"] ~ df$status[df$category == "action"])

或者:

boxplot( x ~ status , data= df[ df$category == "action", ])

或者:

 boxplot( x ~ status , data= df, subset = (category == "action") )

获取类别的所有四个值的一种好方法是在RHS上使用一个交互项:

boxplot(x ~ interaction( status, category), data=df)