同时分箱两列数据

时间:2015-03-29 15:17:32

标签: r binning

我有两列数据,一列包含一组值,另一列包含相应的皮尔逊系数值(两者都是41306329长)。我想将我的数据存储到第一列,以便属于设置的bin范围内的任何值也都包含在这些bin中的相应pearson系数值。但是,一旦完成,我就想要将那些皮尔森系数值加之。例如,使用: -

column1 <- as.numeric(c("100.01", "100.015", "100.017", "100.071", "100.099", "100.111", "100.153", "100.167"))
column2 <- as.numeric(c("0.89", "0.64", "-0.14", "-0.79", "1", "0.31", "-0.27", "0.45"))
test <- cbind(column1, column2)
bin1 <- seq(100, 100.2, by = 0.05)
bin2 <- seq(-1, 1, by = 0.5)

我需要一种方法来对值进行分区,这样我就可以获得(100,100.05)(100.05,100.1)(100.1,100.15)(100.15,100.2)的bin范围,其值落在各自的bin中,然后将它们分箱皮尔森系数值从-1到+1,并由此产生一个三维散点图,它描述了使用皮尔逊系数值从第一列中分配的值。实际上,它会生成一个值图(column1)与皮尔逊系数(第2列)与频率。

图表看起来像这样: - enter image description here

我希望这是有道理的!谢谢!

1 个答案:

答案 0 :(得分:2)

你可以尝试

 res <- data.frame(Map(function(x,y) cut(x, breaks=y),
                    as.data.frame(test), list(bin1, bin2)))

 res1 <- cbind(test, res)