在R中使用时间序列

时间:2016-08-05 19:11:16

标签: r group-by

我认为在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"然后将时间序列类型的对象应用于" last"使用sassign。

t_sassign <-data.frame(group_by(sassign,last))
t_sassign<-ts(t_sassign,start = c(2014,1),frequency = 12)

&#34;最后&#34;是指示最后一个&#39; n&#39;购买后数月。 上面的代码很有效,除了代码抛出警告。

Warning message:
In data.matrix(data) : NAs introduced by coercion

为什么会这样?请帮助我...我的假设是我得到了NAs,因为R不知道如何对混合数据进行分组 - 分组列(如state(分类)和book_(连续))。我对么?

但是,如果我的假设是正确的,我不太确定如何处理混合数据。如果一切都是绝对的,我会使用CrossTabs。如果它一直都是连续的,我会使用诸如总和,中位数等函数。但是,对于混合数据,我不太确定。

我真的很感激你的想法。

1 个答案:

答案 0 :(得分:0)

没有。 “NA”可能是因为ts无法将“性别”,“州”和“买方”的字符值转换为数字。当它们是因素时,不会出现警告信息。

mysql -u USERNAME -p
use DBNAME;