假设我有一个如下所示的数据框
mat <- data.frame(matrix(data = rexp(200, rate = 10), nrow = 100, ncol = 10))
然后我可以使用
计算每个列的直方图matAllCols <- apply(mat, 2, hist)
现在,如果你看看matAllCols $ break,你可以看到11,有时12等。 我想要的是为它设置一个阈值。例如,它应始终为12,每个bin中心之间的距离(以matAllCols $ mids存储)为0.01
当时对一列进行操作似乎很简单,但是当我尝试为所有列执行此操作时,它不起作用。这也只是休息,如何设置中频也不是直截了当的
matAllCols <- apply(mat, 2, function(x) hist(x , breaks = 12))
无论如何要做到这一点?
答案 0 :(得分:0)
您正在寻找
set.seed(1)
mat <- data.frame(matrix(data = rexp(200, rate = 10), nrow = 100, ncol = 10))
matAllCols <- apply(mat, 2, function(x) hist(x , breaks = seq(0, 0.5, 0.05)))
或只是
x <- rexp(200, rate = 10)
hist(x[x>=0 & x <=0.5] , breaks = seq(0, 0.5, 0.05))
答案 1 :(得分:0)
您可以通过将直方图单元格之间的所有断点都设为breaks
来解决问题。 (但是这是用stat.ethz.ch/R-manual/R-devel/library/graphics/html/hist.html写的@Colonel Beauvel说的)
set.seed(1); mat <- data.frame(matrix(data = rexp(200, rate = 10), nrow = 100, ncol = 10))
# You need to check the data range to decide the breakpoints.
range(mat) # [1] 0.002025041 0.483281274
# You can set the breakpoints manually.
matAllCols <- apply(mat, 2, function(x) hist(x , breaks = seq(0, 0.52, 0.04)))