gpt4 book ai didi

r - 不同 ggplot2 图中的重复命令

转载 作者:行者123 更新时间:2023-12-04 10:50:57 28 4
gpt4 key购买 nike

这似乎是很多人都会遇到的问题,遵循不要重复自己 (DRY) 原则。我在任何地方都找不到答案,也许我一直在寻找错误的术语,这意味着我的问题标题可能不是很好。如果人们对如何为问题提出更好的建议,我们将不胜感激。

我有几个 ggplot2 图,它们都有一些共同的命令,以及其他差异太大的命令,因此不值得将它们一起写成一个循环/函数。

如何将常用命令包含在简洁的单行代码中?

一个例子可能会解释得更清楚:

common.lines <- "theme_bw() +
geom_point(size = 2) +
stat_smooth(method = lm, alpha = 0.6) +
ylab("Height")"

my.plot <- ggplot(data = my_df, aes(x = "Length", y = "Height")) +
common.lines

jim.plot <- ggplot(data = jim_df, aes(x = "Width", y = "Height")) +
common.lines

我的问题是,我该如何构建common.lines?像上面那样制作一个字符串是行不通的。我还尝试制作一个向量,然后使用 + 作为分隔符进行 pasteing。

有什么建议吗?

干杯

最佳答案

您可以将命令放在列表中。

my_df <- data.frame(Length=rnorm(100, 1:100), Height=rnorm(100, 1:100))
jim_df <- data.frame(Width=rnorm(100, sin(seq(1,4*pi,len=100))),
Height=rnorm(100, 1:100))
common.lines <- list(theme_bw(), geom_point(size = 2),
stat_smooth(method = lm, alpha = 0.6), ylab("Special Label"))

my.plot <- ggplot(data = my_df, aes(Length, Height)) + common.lines
jim.plot <- ggplot(data = jim_df, aes(Width, Height)) + common.lines
jim.plot

关于r - 不同 ggplot2 图中的重复命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30430948/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com