分箱十进制数据并绘制直方图

时间:2012-11-01 13:36:04

标签: r bash

我在文件中有一个数据集,如下所示:

0.0707526823
0.4859753978
0.0084166789
0.0694709558
0.0156410467
0.3783259831
0.8977261856
0.7981824881
0.2079852045
0.9498437264
0.9264972044
0.1878358734
0.0020816686
0.0024611297
0.4250464895
0.0725748666
0.0407962054
0.8282363221
0.8408343333
0.7129760016
0.2772250135
0.3677588953
0.4723908637
0.9452814318

我想以0.1的间隔对这些数据进行分区并绘制直方图。

我确实尝试使用R,

这就是我在做什么

x<-read.table("filex", header=T)
breaks=seq (min, max, step)
hist (x$col1, breaks)

但是这个命令在我的情况下不起作用:(

在awk中任何一个班轮,或者欢迎R

谢谢

1 个答案:

答案 0 :(得分:3)

您似乎需要使用breaksmin(x)更好地指定max(x)

x <- read.table(textConnection("
0.0707526823
0.4859753978
0.0084166789
0.0694709558
0.0156410467
0.3783259831
0.8977261856
0.7981824881
0.2079852045
0.9498437264
0.9264972044
0.1878358734
0.0020816686
0.0024611297
0.4250464895
0.0725748666
0.0407962054
0.8282363221
0.8408343333
0.7129760016
0.2772250135
0.3677588953
0.4723908637
0.9452814318"))
#extract vector of numeric from current data frame
x <- x$V1
#create breaks for frequency
#need to add a padding factor to make things equally spaced
step <- .1
pad <- step - ((max(x) - min(x)) %% step)/2
breaks <- seq(min(x) - pad, max(x) + pad,by=.1)
#alternative (only good for exact decimal increments):
#use floor and ceiling
breaks <- floor(min(x)*10):ceiling(max(x)*10)/10
#create histogram
#equally spaced breaks create frequency chart automatically
hist(x,breaks)