2016-08-05 5 views
0

Я считаю, что использование временных рядов в R обсуждалось подробно на этапе 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 

Теперь, вот что я сделал, чтобы создать объект временных рядов сверху: - моя цель состоит в том, чтобы сгруппировать строки с помощью «последнего», а затем применить временные ряды типа объекта «последний» используя sassign.

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

«Последний» - это столбец с указанием последних «n» месяцев с момента покупки. Вышеупомянутый код работает хорошо, за исключением того, что код бросает предупреждения.

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

Почему это происходит? Пожалуйста, помогите мне ... Моя гипотеза заключается в том, что я получаю NA, потому что R не знает, как группировать смешанные столбцы данных, такие как состояние (категориальное) и book_ (непрерывное). Я прав?

Однако, если моя гипотеза верна, я не совсем уверен, как я могу обрабатывать смешанные данные. Если бы все было категорично, я бы использовал CrossTabs. Если бы все было непрерывно, я бы использовал такие функции, как сумма, медиана и т. Д. Однако со смешанными данными я не совсем уверен.

Я по-настоящему ценю ваши мысли.

ответ

0

№ «NA» возможно, потому что ts не может преобразовать значения символов «пол», «состояние» и «покупатель» в числовой. Когда они являются факторами, не появляется предупреждающее сообщение.

sassign = read.table(header = TRUE, text = " 
acctnum gender state zip zip3 first last book_ nonbook_ total_ purch child youth cook do_it refernce art geog buyer 
1 10001  M NY 10605 106 49 29 109  248 357 10  3  2 2  0  1 0 2 no 
2 10002  M NY 10960 109 39 27 35  103 138  3  0  1 0  1  0 0 1 no 
3 10003  F PA 19146 191 19 15 25  147 172  2  0  0 2  0  0 0 0 no 
4 10004  F NJ 07016 070  7 7 15  257 272  1  0  0 0  0  1 0 0 no 
5 10005  F NY 10804 108 15 15 15  134 149  1  0  0 1  0  0 0 0 no 
6 10006  F NY 11366 113  7 7 15  98 113  1  0  1 0  0  0 0 0 yes 
"); 
t_sassign <-data.frame(group_by(sassign,last)) 
t_sassign<-ts(t_sassign,start = c(2014,1),frequency = 12) 
Смежные вопросы