将分钟和小时因子在一天内用R组合成分钟

时间:2014-07-02 13:05:33

标签: r google-analytics

我正在使用库(rga)从谷歌分析API中检索给定日期每分钟的综合浏览量,这通过使用维度" ga:date,ga:hour,ga:minute"

问题是返回的数据框将小时和分钟作为有序因子返回

'data.frame':   1440 obs. of  4 variables:
$ date           : Date, format: "2014-03-31" "2014-03-31" "2014-03-31" "2014-03-31" ...
$ hour           : Ord.factor w/ 24 levels "0"<"1"<"2"<"3"<..: 1 1 1 1 1 1 1 1 1 1 ...
$ minute         : Ord.factor w/ 60 levels "0"<"1"<"2"<"3"<..: 1 2 3 4 5 6 7 8 9 10 ...
$ pageviews      : num  212 177 219 217 182 190 179 217 206 183 ...

我要找的是一天内有序的分钟因数。即1:1440

1 个答案:

答案 0 :(得分:2)

如果您知道您的数据是所有1440分钟的完整有序集,那么就这样做:

d$minfactor = factor(1:1440, ordered=TRUE)

否则:

d$Fmin = factor(60*(as.numeric(d$hour)-1) + as.numeric(d$minute), ordered=TRUE)

您应该使用数字而不是因子 - 有序因子中的排序是级别的排序,因此您可以执行以下操作:

> z = factor(5:1, ordered=TRUE, levels=5:1)
> z[1] < z[2]
[1] TRUE
> z[1:2]
[1] 5 4
Levels: 5 < 4 < 3 < 2 < 1
看起来像5的

小于4.

这是一个相当强大的规则,如果你的因子水平最好保持为数字,那么它们应该是数字。如果他们是类别,如男性和女性,最好的水平是&#34; M&#34;和&#34; F&#34;,而不是0和1.如果级别是有序但不是数字,请使用有序因子,例如&#34; Small&#34;,&#34; Medium&#34;,& #34;大&#34; (其中没有S,M,L的数字定义。)