我有一个数据框架,其中包含各大洲的年度明智的计数。下面是数据框架。
# A tibble: 4 x 4
continent year_2020 year_2021 year_2022
<chr> <dbl> <dbl> <dbl>
1 Asia 35 177 350
2 Europe 45 47 84
3 Australia 26 46 58
4 Africa 15 20 25
这是我用来创建图表的R脚本
stack %>%
e_charts(continent) %>%
e_bar(year_2020) %>%
e_bar(year_2021) %>%
e_bar(year_2022)
图表
Bar graph
我的期望是我如何动态地传递这个列的名称。上面的数据框是样本数据集和年份列不断增加。我的想法是显示每个大洲最多3条。
我所尝试的是,有一个开始年份和结束年份,这样条形图就可以基于输入显示,而不是在e_bar函数中热编码列名。
start_year <- "2020"
end_year <- "2022"
year_val <- paste0("year_",start_year:end_year)
year_val1 <- year_val[1]
year_val2 <- year_val[2]
year_val3 <- year_val[3]
stack %>%
e_charts(continent) %>%
e_bar(sym(year_val1)) %>%
e_bar(sym(year_val2)) %>%
e_bar(sym(year_val3))
但收到以下错误chr_as_locations()
中的错误:!无法对不存在的列进行子集化。x列sym(year_val1)
不存在。
需要有关如何动态传递年份列的帮助。
谢谢
1条答案
按热度按时间fhity93d1#
一个选项是切换到
e_bar
的“下划线”版本,即e_bar_
,它允许将系列名称作为字符串传递:数据