【问题标题】:Plotting Weekly Data of Categorical Variables in R在 R 中绘制分类变量的每周数据
【发布时间】:2015-10-16 18:36:45
【问题描述】:

我有一个包含三个变量的每周数据

W   Var Units
1   A   10
2   A   3
2   B   19
3   C   8
3   A   54
3   A   6
4   C   2
4   B   13
6   C   22
6   A   31
7   C   17
7   A   43
7   D   4

`我想以这样的方式绘制它,即在 y 轴 Var(即具有不同颜色的 A、B、C)上应该用 x 轴上的周数 (W) 绘制。一周 (W) 可能包含两个或三个变量。例如,第三周有 A 和 C。所以周是多值函数,单位表示点的大小。到目前为止,我已经使用了

ndf <- data.frame(W= 1:max(as.numeric(as.character(df$W))))
merge_df <- merge(df, ndf, all=TRUE) # to note every week number so that zeors can also be plotted
merge_df[is.na(merge_df)] <- 0 # setting Na's to zero

问题是在这些步骤之后,在 Var 列中产生了一些 NA。如何处理和绘制?

接下来这是一个示例数据,如果我有 10 年的周数,并且我想将 Var 绘制为 10 年的每周时间序列,如何做到这一点。

【问题讨论】:

  • NA 出现在 Var 列中,因为它属于 factor 类。零不是因素之一,所以它没有被改变。您确定要在该槽中输入零而不是字母吗?
  • 亲爱的 Pierre,在 Steven 提供的解决方案中可以轻松处理。 NA 因子现在不再是一个令人不安的部分。

标签: r plot dataframe time-series


【解决方案1】:

我不太确定我是否理解你的问题,这有帮助吗?

library(dplyr)
library(ggvis)

df %>%
  ggvis(~W, ~Var, fill = ~Var, size = ~Units)  %>%
  layer_points() %>%
  add_legend("size", properties = legend_props(legend = list(y = 100))) %>%
  scale_numeric("x", nice = TRUE)

【讨论】:

  • 亲爱的史蒂文,感谢您的回复。它几乎可以正常工作。五年或十年的数据如何解决这种情况?
  • @Pankaj 你的意思是如果不同年份的周数相同?
  • 不完全是。但是是的,通过这种模式,我可以获得不同年份的数据
  • @Pankaj 请提供您想要的输出
猜你喜欢
  • 2019-04-14
  • 2020-09-16
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 2020-02-04
  • 1970-01-01
  • 2020-05-08
  • 1970-01-01
相关资源
最近更新 更多