R

时间:2018-05-14 23:18:05

标签: r dataframe discretization

假设有这样的数据框:

    a  b   c
1.  2  2   3
2.  5  4   4
3.  1  7   4
4.  1  9   4
5.  2  14  0
6.  9  10  6

我想将 b 列中的数据离散化并输入接收方式 范围作为已处理数据框的指定列中的实例的离散值。预测结果如下:

    a  b   c
1.  2  3   3
2.  5  3   4
3.  1  8   4
4.  1  8   4
5.  2  12  0
6.  9  12  6

我遇到了来自 arules 库的离散化等功能

res <- discretize(df$b, method = "frequency", breaks = 3)

我认为可以解决问题,但我发现无法输入意味着回到 df

修改

感谢评论中提供的解决方案,我能够在范围之间实现令人满意的原始数据分布。我也在df$b <- iris$Petal.Length(@alistaire解决方案)上测试了它:

ave(df$b, cut(df$b, quantile(df$b, seq(0, 1, length = 8)), 
          include.lowest = TRUE), FUN = mean)

以下结果:

hist(df$b)$count
24 20  0  0 22  0 21 21 23  0 19

如果有人知道在数据框中离散列实例的其他方式,我们将不胜感激。 (尤其是可以在具有相等实例数的范围上划分数据的离散化)

0 个答案:

没有答案