我正在使用库(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
答案 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的数字定义。)