我目前正在编写一个大文件,该文件将引用几个" .R"代码脚本,用于读取大量已保存的数据集以创建一系列图表。我想避免将数据读入我的环境以最大限度地减少混乱(有很多文件)。
出于这个原因,我想引用一个数据集并将其传输到" chunk" ggplot选项创建我想要的美学等等。然而,看起来ggplot"忘了"在第一层之后的管道数据集,我想知道是否有办法绕过这种行为。
这里有关于SO(Referencing piped dataset in ggplot layers for subsetting)的类似问题,但对数据集的引用发生在" geom"显式调用数据对象的步骤。奇怪的是,我没有使用其他问题的建议,但他们不能解决我的特定问题。
特别是,我需要引用数据集以告诉ggplot要创建多少轴刻度(我希望数据通知此步骤,以便在将来数据发生变化时创建新轴,例如更多"年"被添加)。举个例子:
dataset <- data.frame(year = c("2014", "2015", "2016"), measure = c(10, 15, 20))
dataset %>%
ggplot(aes(x = year, y = measure)) +
geom_bar(stat = "identity") +
scale_x_continuous(breaks = unique(.$year))
给出错误
Error in unique(.$year) : object '.' not found
管道在第一步中工作正常(明确地说,&#39; data =。,...&#39;),但引用的对象是&#39;。&#39;是一个占位符,不会在&#34;下游&#34;层。
我经常可以使用大括号{}来解决这个问题(出于我不完全理解的原因),但这也不起作用:
dataset %>%
ggplot(aes(x = year, y = measure)) +
geom_bar(stat = "identity") +
{scale_x_continuous(breaks = unique(.$year))}
我怀疑我可能对magrittr和ggplot太新了,无法完全理解为什么&#34;%=&gt;%和&#34; +&#34;似乎不能很好地在一起玩,但希望有人能够指出我正确的方向。谢谢!