【发布时间】:2012-06-12 13:47:08
【问题描述】:
我是 R 新手,我正在尝试为以下数字绘制直方图
输入.txt
a b c 1.111
d e f 2.3433
g h i 9.87667
............
............
总记录 - 2444910
最大值 - 142701.38999976
所以,到目前为止我已经尝试过了
setwd ("/path/")
data <- read.table ("input.txt", sep="\t", header=F)
x <-data$V4
bins = seq(0,150000,by=10000)
h <- hist(x, breaks=bins, probability=TRUE)
s = sd(x)
m = mean(x)
curve(dnorm(x, mean=m, sd=s), add=TRUE, lwd=3, col="red")
lines(density(x), col="blue")
abline(v=mean(x),col="blue")
mtext(paste("mean ", round(mean(x),1), "; sd ", round(sd(x),1), "; N ",length(x),sep=""), side=1, cex=.75)
dev.off()
但是,我只能在 (0,0) 坐标附近获得一个直方图条。任何帮助表示赞赏。
【问题讨论】:
-
您是否检查了
typeof(data$V4)(或is.numeric(data$V4))以确保它仍然是数字?您是否确保有多个值大于您的第一个 bin 值 10 000?也可以看看m和median(x)的值。 -
这样做:
table(cut(data$V4, bins)),....我猜你得到了一个你没想到的正确结果。 -
我的第一个值从 2.1111775 开始,最终值是我在问题中发布的最大值。
-
@Dwin - 我在哪里添加 table(cut(data$V4, bins)) 在我的代码中。对不起,我是 R 的新手。我很确定垃圾箱的数量让我发疯。我的输出图像中的 x 轴是这样的 0-50000-100000-150000。我的 Y 轴的密度值范围从 o 到 5e-04。谢谢
-
只需在控制台提示符下输入代码。关键是您的数据几乎都在第一个 bin 中。你似乎还没明白。