Как я могу маркировать свои точки данных в соответствии с определенными диапазонами? - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть фрейм данных df , и я устанавливаю интервалы, которые сохраняются в векторе pts .Теперь я хочу пометить свои данные в эти интервалы.Я пытался использовать функцию cut (), но всегда получаю ошибку, что x не является числовым, хотя я преобразовал его в числовое.

Мой фрейм данных df

        date    amount
1    2012-07-01 2.3498695
2    2012-08-01 0.6984866
3    2012-09-01 0.9079118
4    2012-10-01 2.8858218
5    2012-11-01 1.2406948
6    2012-12-01 2.3140496
7    2013-01-01 1.5904573
8    2013-02-01 3.2531825
9    2013-03-01 4.2962963
10   2013-04-01 3.3287101
11   2013-05-01 3.7698413
12   2013-06-01 1.4376997
13   2013-07-01 5.0687285
14   2013-08-01 4.4520548
15   2013-09-01 5.5063913
16   2013-10-01 5.5676856
17   2013-11-01 6.2686567
18   2013-12-01 11.021069

Мой вектор pts со столбцом Мин с точками интервала

pts$Min
[1]  3  6 11

Мой новый фрейм данных должен выглядеть следующим образом:

    date     amount      IntervalRange
1    2012-07-01 2.3498695    1
2    2012-08-01 0.6984866    1
3    2012-09-01 0.9079118    1
4    2012-10-01 2.8858218    2
5    2012-11-01 1.2406948    2
6    2012-12-01 2.3140496    2
7    2013-01-01 1.5904573    3
8    2013-02-01 3.2531825    3
9    2013-03-01 4.2962963    3
10   2013-04-01 3.3287101    3
11   2013-05-01 3.7698413    3
12   2013-06-01 1.4376997    4
13   2013-07-01 5.0687285    4
14   2013-08-01 4.4520548    4
15   2013-09-01 5.5063913    4
16   2013-10-01 5.5676856    4
17   2013-11-01 6.2686567    4
18   2013-12-01 11.021069    4

ТАК, я попробовал это:

df_cut <- data.frame(as.numeric(df$date), "IntervalRange" = cut(
                                                df,
                                                breaks=pts$Min))

Что приводит к этому сообщению об ошибке :

Ошибка в cut.default (df, breaks = pts $Мин.): 'X' должно быть числовым

Мои вопросы теперь :

  1. Почему я получаю это сообщение об ошибке?Я уже изменил его на числовой ...
  2. Можно ли получить желаемый результат с помощью функций cut () и findIntervals () также при использовании других наборов данных сдругие интервальные точки?

1 Ответ

0 голосов
/ 27 сентября 2018

Вам не хватает значения (или столбца) в функции вырезания.Ваша команда должна быть

data.frame(as.numeric(df$date), "IntervalRange" = cut(df$amount,  breaks=pts$Min))

Надеюсь, это поможет!

...