我有一个数据集,我想在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出错(data $ actions,breaks = seq(0,130,by = 1),:
一些' x'没有计算;也许'休息'不要跨越' x'
的范围 电话:hist - > hist.default
执行暂停
我知道为什么会出现这种错误:有一次出现大于130的值,即baz
,其值为131.
我想要的是为指定范围0到130的频率创建一个直方图 ,并且可以忽略该范围之外的所有频率。我怎么能这样做?
答案 0 :(得分:2)
避免此错误的最佳方法是将您提供的数据子集到基本R函数hist
。
例如,
with(data, hist(actions[actions >= 0 & actions < 131], breaks=seq(0,130,by=1))
也许更灵活的方法是预先指定所需的一组值,以便在某些时候改变主意时更容易调整。
myValues <- seq_len(131)-1
with(data, hist(actions[actions %in% myValues], breaks=myValues)