我最近使用一些样本数据在R中创建了一个条形图,没有任何问题。然后我再次尝试使用与样本数据完全相同的实际数据,除了它有更多。问题是现在我收到了这个错误:
Error in barplot.default(table(datafr)) :
'height' must be a vector or a matrix
我不知道这是否有帮助但是当我打印出桌子时,这些是最后一行的样子。
33333 2010-09-13-19:25:50.206 Google Chrome-#135 NA
[ reached getOption("max.print") -- omitted 342611 rows ]]
这是否有可能需要处理太多数据?关于如何解决这个问题的任何建议?
谢谢:)
编辑1
嘿Joris,
这是来自str(datafr)的信息:
'data.frame': 375944 obs. of 3 variables:
$ TIME : Factor w/ 375944 levels "2010-09-11-19:28:34.680 ",..: 1 2 3 4 5 6 7 8 9 10 ...
$ FOCUS.APP: Factor w/ 107 levels " Finder-#101 ",..: 3 3 3 3 3 3 3 3 1 1 ...
$ X : logi NA NA NA NA NA NA ...
和来自traceback()
3: stop("'height' must be a vector or a matrix")
2: barplot.default(table(datafr))
1: barplot(table(datafr))
我还运行了你告诉我的另一个命令,但反馈非常冗长;在这里打印太多了。如果您需要任何其他信息或者如果最后的信息非常重要,请告诉我,我可以想办法发布它。
谢谢,
答案 0 :(得分:4)
啊,这解决了问题:你的表中有3个维度,barplot无法处理。将您想要用于条形图功能的2列,例如:
# sample data
Df <- data.frame(
TIME = as.factor(seq.Date(as.Date("2010-09-11"),as.Date("2010-09-20"),by="day")),
FOCUS.APP = as.factor(rep(c("F101","F102"),5)),
X = sample(c(TRUE,FALSE,NA),10,r=T)
)
# make tables
T1 <- table(Df)
T2 <- table(Df[,-3])
# plot tables
barplot(T1)
barplot(T2)
这就是说,至少可以说这个情节看起来很有趣。我不知道你尝试做什么,但我会说你可能会重新考虑你的方法。