我想使用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()
?
答案 0 :(得分:4)
传递拆分数据框而不仅仅是值。然后你将有更多的工作:
by(x, x$Variable2, function(x) hist(x$Value, main=unique(x$Variable2) ) )
制作了两个标有Condition1
,Condition2
答案 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"))