【发布时间】:2016-03-16 05:12:56
【问题描述】:
我在一个循环中对数据进行子集化以创建多个 ggplots 时遇到了困难。目标是为每个唯一的 id 值创建一个图。 我认为的问题是填充=我认为也需要子集的原因。
## Calendar plot loop
id.calendar <- function(daily, na.rm = TRUE, ...){
myid <- unique(daily$id)
for (i in seq_along(myid)) {
calendar <-
ggplot(subset(dat, dat$id==myid[i]),
aes(monthweek, weekdayf, fill = reason)) +
geom_tile(colour = "grey80") +
facet_grid(year~monthf)
print(calendar)
}
}
Error: Insufficient values in manual scale. 9 needed but only 6 provided.
dat$id 是一个字符串(尽管它可以转换为数字)。我在这个论坛的某个地方读到,子集最好在 ggplot 之外完成。无论如何,我需要快速循环。
【问题讨论】:
-
我认为
for (i in seq_along(myid))应该是for (i in myid)? seq_along 给出 1:n 的数字,例如:seq_along(letters[1:3]) -
很抱歉没有包含可重现的示例(我通常会这样做)。