【发布时间】:2016-11-23 13:19:52
【问题描述】:
我有一个数据集,我想在 R 中用hist 绘制。数据集中有许多行的值超出了我关心的值。具体来说,我的 R 脚本是:
library(ggplot2)
data = read.table("input.txt", sep=" ", strip.white=TRUE, header=TRUE)
pdf("out.pdf")
hist(data$actions,breaks=seq(0,130,by=1))
dev.off()
input.txt 的示例数据集是:
name actions
foo 3
bar 129
baz 131
如果我运行 R 脚本,我会得到一个错误:
hist.default 中的错误(数据$actions,breaks = seq(0, 130, by = 1), :
一些“x”不计算在内;也许“休息”不跨越“x”的范围
调用: hist -> hist.default
执行停止
我知道为什么会出现这个错误:有一次出现大于 130 的值,即 baz 的值为 131。
我想要的是为 0 到 130 的指定范围内的频率创建一个直方图只是,并且该范围之外的所有频率都将被静默忽略。我该怎么做?
【问题讨论】:
-
放弃这些观察:
with(data, hist(actions[actions >= 0 & actions < 131], breaks=seq(0,130,by=1))。此外, hist 是一个基础 R 图形,因此library(ggplot2)是不必要的。 -
太好了,谢谢!如果您将其作为答案输入,那么我很乐意接受它作为所选答案。