【发布时间】:2016-08-05 19:11:16
【问题描述】:
我相信 Time series in R 已经详细讨论了在 R 中使用时间序列。
但是,上面的数据集在我迄今为止阅读的所有 SO 帖子和书籍中都假设为一个数字数组 (https://media.readthedocs.org/pdf/a-little-book-of-r-for-time-series/latest/a-little-book-of-r-for-time-series.pdf)。如果我的数据也有分类数据怎么办?例如,
> head(sassign)
acctnum gender state zip zip3 first last book_ nonbook_ total_ purch child youth cook do_it refernce
1 10001 M NY 10605 106 49 29 109 248 357 10 3 2 2 0 1
2 10002 M NY 10960 109 39 27 35 103 138 3 0 1 0 1 0
3 10003 F PA 19146 191 19 15 25 147 172 2 0 0 2 0 0
4 10004 F NJ 07016 070 7 7 15 257 272 1 0 0 0 0 1
5 10005 F NY 10804 108 15 15 15 134 149 1 0 0 1 0 0
6 10006 F NY 11366 113 7 7 15 98 113 1 0 1 0 0 0
art geog buyer
1 0 2 no
2 0 1 no
3 0 0 no
4 0 0 no
5 0 0 no
6 0 0 yes
现在,这是我从上面创建时间序列对象的操作:--我的目标是使用“last”对行进行分组,然后使用 sassign 将时间序列类型的对象应用于“last”。
t_sassign <-data.frame(group_by(sassign,last))
t_sassign<-ts(t_sassign,start = c(2014,1),frequency = 12)
“Last”是表示购买后最近 'n' 个月的列。 上面的代码运行良好,只是代码抛出了警告。
Warning message:
In data.matrix(data) : NAs introduced by coercion
为什么会这样?请帮助我......我的假设是我得到 NAs 因为 R 不知道如何对混合数据进行分组——对状态(分类)与 book_(连续)等列进行分组。我对么?
但是,如果我的假设是正确的,我不太确定如何处理混合数据。如果都是分类的,我会使用 CrossTabs。如果它是连续的,我会使用 sum、median 等函数。但是,对于混合数据,我不太确定。
非常感谢您的想法。
【问题讨论】: