如何在R中的直方图标题中包含变量值 - 使用by()

时间:2012-09-18 17:31:29

标签: r title histogram

我想使用by()生成直方图,如何访问因子的值,包括在直方图标题中,例如......

a <- runif(500, 0, 10)
b <- LETTERS[1:5]
c <- c("Condition1", "Condition2")

x <- data.frame("Variable1" = b, "Variable2"= c, "Value"=a)
head(x)
by(x$Value, x$Variable2, hist)

或使用两个变量

by(x$Value, list(x$Variable2, x$Variable1), hist)

有没有办法使用hist()中的选项将变量值(例如Condition1)传递给直方图的标题,例如将function(x) hist(x, main=...)放入by()

2 个答案:

答案 0 :(得分:4)

传递拆分数据框而不仅仅是值。然后你将有更多的工作:

by(x, x$Variable2, function(x) hist(x$Value, main=unique(x$Variable2) ) )

制作了两个标有Condition1Condition2

的地块

答案 1 :(得分:2)

这并不能真正回答您的问题,因为您指定使用by(),但我通常会使用split()lapply()来解决这些类型的问题。我的方法通常是:

temp <- split(x$Value, list(x$Variable2, x$Variable1))
lapply(names(temp), function(x) hist(temp[[x]], main = x, xlab = "Value"))