我给你带来了一个问题,我发现自己在做一项工作时。我需要执行一个'钻取',包含约100列,我遇到了一个效率问题。数据集包含从1913年到2021年。
第一个
我需要创建一个明细,其中显示了每年的平均值,在本例中,平均值只有2,但在原始数据框中,图表中应该显示大约100列
我能想到的办法是以下几种:
第一个
我将不得不为每个需要创建的 Dataframe 重复这段代码,我认识到这是低效的。
示例:
highchart() %>%
hc_chart(type = "column") %>%
hc_title(text = "Example Drilldown") %>%
hc_xAxis(type = "category") %>%
hc_legend(enabled = FALSE) %>%
hc_plotOptions(series = list(boderWidth = 2,
dataLabels = list(enabled = TRUE))) %>%
hc_add_series(data = dfDD,
name = "Mean",
colorByPoint = TRUE) %>%
hc_drilldown(allowPointDrilldown = TRUE,
series = list(list(id = "1913",
data = list_parse2(df1913)),
list(id = '1914',
data = list_parse2(df1914))))
更新日期:2022年5月7日
编辑:
我必须重新提出我的问题,因为我用了不正确的方式表达自己,这就是为什么我没有得到我的主要问题的答案。首先,我感谢每一个阅读和评论他对我的问题的意见的人。
重新表述的问题:
我需要创建一个“明细”样式的图表。我的原始数据集只有2列:
- 日期
- 价值
每年我有12个值 (1代表一年中的每个月)。问题是数据集在“年”列中注册了从1913年到2021年的年份。它大约有1300行。如果我没算错的话,它是109年,其中每个年份有12个值 只有2021年有7个。
在我之前解释的方法中,我解决问题的方法效率低下,而且时间很长。必须为一年中的每个子集创建一个数据框,这将是一件乏味的事情,我将创建100多个数据框。
有没有更有效的方法来解决我的问题?如果有,你能举个例子给我解释一下吗?非常感谢,很抱歉一开始表达得不好。
Data Source
1条答案
按热度按时间km0tfn4u1#
从示例 Dataframedf开始,稍微处理一下数据,将变量 year 添加为字符:
...并在绘图合成期间进行分组和聚合(无需使用数据框架填满您的工作空间):
如果你的 Dataframe 有很多列,你可能想把这些列堆叠起来,例如用
pivot_longer
,也就是说你把这些列缩小到两列:一个包含变量名称,第二个包含变量值:...现在,您可以在将长格式 Dataframe 作为绘图参数输入之前,按变量(以及年份和...)动态
filter
长格式 Dataframe 。