【发布时间】:2020-09-29 13:15:44
【问题描述】:
我想创建一个函数来创建跨多个维度和数值变量的直方图。
我正在尝试这样做,除了 x 轴采用最终循环的值。因此,当最终循环的 x 轴从 0 扩展到 5000 时,无论如何,所有直方图都将具有相同的 x 轴。
这是我的代码
groups_df <-
data.frame(
groups =
c(rep("ABC", 3),
rep("XYZ", 2)),
cuts =
c(c("cat", "dog", "bird"),
c("red", "blue")) %>%
mutate(groups = as.character(groups),
cuts = as.character(cuts))
numeric.variables <-
c("hops",
"skips",
"jumps")
visualizations <- list()
for (i in seq_along(groups_df$groups)){
for (j in seq_along(numeric.variables)){
visualizations[[groups_df$groups[i]]][[str_replace_all(tolower(groups_df$cuts[i]), " ", "_")]][[numeric.variables[j]]] <-
mydf %>%
filter(get(groups_df$groups[i]) == list.of.groups_df$cuts[i]) %>%
ggplot(aes(get(numeric.variables[j]))) +
geom_histogram() +
labs(x = numeric.variables[j],
title = paste0(str_replace_all(numeric.variables[j], "_", " "), " - ", tolower(groups_df$cuts[i])))
}
}
【问题讨论】:
-
mydf是哪里或什么? -
嗨@Cauder,这是R中的惰性评估。请参阅stackoverflow.com/questions/41666078/…..尝试将它们放在一个方面或使用lapply
-
它可以是任何东西。我们可以将其称为泰坦尼克号数据集,并将组和剪辑更新为 groups= c("Gender", "Class) and cuts = c(c("Male", Female), c("First, "Second" "Third ")
-
@StupidWolf,即使分配给列表也是如此吗?能否请您用 lapply 写一个答案,以便我将其标记为正确
-
@Cauder,没关系..也许你用我发布的链接中的 lapply 试试?否则我会将这个问题标记为重复。
标签: r