如何根据定义的范围标记我的数据点?
How can I label my data points according to defined ranges?
我有一个数据框 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 列 Min 间隔点
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))
这会导致此 错误消息:
Error in cut.default(df, breaks = pts$Min) : 'x' must be numeric
我现在的问题是:
- 为什么我会收到此错误消息?我已经将其更改为数字...
- 当使用具有其他间隔的其他数据集时,我能否通过使用 cut() 和 findIntervals() 函数来实现我想要的输出积分?
您缺少剪切函数中的值(或列)。你的命令应该是
data.frame(as.numeric(df$date), "IntervalRange" = cut(df$amount, breaks=pts$Min))
希望对您有所帮助!
我有一个数据框 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 列 Min 间隔点
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))
这会导致此 错误消息:
Error in cut.default(df, breaks = pts$Min) : 'x' must be numeric
我现在的问题是:
- 为什么我会收到此错误消息?我已经将其更改为数字...
- 当使用具有其他间隔的其他数据集时,我能否通过使用 cut() 和 findIntervals() 函数来实现我想要的输出积分?
您缺少剪切函数中的值(或列)。你的命令应该是
data.frame(as.numeric(df$date), "IntervalRange" = cut(df$amount, breaks=pts$Min))
希望对您有所帮助!