сократить конфликт меток в data.table - PullRequest
0 голосов
/ 08 сентября 2018

Я надеюсь, что вы можете помочь мне в этом, потому что что-то кажется неправильным.

Я использую этот код для расчета квантилей определенной переменной (MarketValue) для каждого июня каждого года:

Test<- Test[format.Date(Date, "%m")=="06", DecileColumnME := cut(Marketvalue, breaks = quantile(Marketvalue, probs = 0:10/10, na.rm = TRUE),
                                                                           labels = 1:10, right = TRUE), by = Date]

и это работает. Теперь я хочу сделать то же самое для данных за июнь, но на этот раз для другой переменной (отношение книги к рынку в столбце BEMERATIOLag6Month).

поэтому я использую

Test2 <- Test2[format.Date(Date, "%m")=="06", DecileColumnBEME := cut(BEMERATIOLag6Month, breaks = quantile(BEMERATIOLag6Month, probs = 0:10/10, na.rm = TRUE),
                                                                  labels = 1:10, right = TRUE), by = Date]

но на этот раз я получаю сообщение об ошибке:

Error in cut.default(BEMERATIOLag6Month, breaks = quantile(BEMERATIOLag6Month,  : 
  lengths of 'breaks' and 'labels' differ

но я не понимаю, почему это так? :( это одно и то же понятие, оба столбца (Marketvalue и BEMERATIOLag6Month) имеют num, я проверял через str ().

Может ли кто-нибудь мне помочь?

заранее спасибо

EDIT:

Я решил это, используя метки = ЛОЖЬ. тогда он просто возвращает простые целые числа, а не факторы, что меня устраивает. Я все еще не понимаю, почему это не работает как на столбце marketvalue, все же.

...