2010-09-27 314 views
4

我最近使用一些示例數據創建了R中的barplot,沒有任何問題。然後,我再次嘗試使用與樣本數據完全相同的實際數據,但除此之外更多。現在的問題是,我得到這個錯誤:R中的Barplot錯誤

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

嘿里斯,

這裏是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 ... 

和回溯( )

3: stop("'height' must be a vector or a matrix") 
2: barplot.default(table(datafr)) 
1: barplot(table(datafr)) 

我也跑了你告訴我的另一個命令,但反饋是超詳細的;在這裏打印太多了。讓我知道,如果你需要任何其他信息或如果最後的信息是非常重要的,我可以找出一種方式發佈它。

感謝,

+2

你可以添加追溯? (運行代碼,當出現錯誤時,輸入traceback()並複製你在那裏看到的內容)。同時嘗試找到一個我們可以嘗試自己的例子。現在任何人都可以說的是,顯然你的真實數據與樣本數據不完全一樣,否則它就會起作用。 – 2010-09-27 14:07:50

+1

也做dput(head(datafr,n = 20))和str(datafr)並把它放在你的問題中。這將告訴我們數據的結構如何,可能是爲什麼你會得到這個錯誤。 – 2010-09-27 14:14:49

+2

嘗試運行'str(dataA)'和'str(dataB)'來獲得工作/非工作數據集之間的差異。 'summary()'函數也可能有幫助。 – 2010-09-27 14:15:43

回答

4

啊,這解決了這個問題:你在你的表3米的尺寸,barplot無法面對這一切。以您要使用的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) 

這表示,該地塊必須尋找有趣的,至少可以說。我不知道你想做什麼,但我會說你可能會重新考慮你的方法。