2010-02-27 58 views
20

我有這種格式的數據文件:不能得出直方圖,「X」必須是數字

輕重工業類型
251787凱洛格^ h
253,9601凱洛格一個
256,0758凱洛格^ h
....

我讀出的數據,並嘗試繪製一個直方圖用以下命令:

ce= read.table("file.txt", header= T) 

we = ce[,1] 
in = ce[,2] 
ty = ce[,3] 

hist(we) 

但是我得到這個錯誤: 錯誤en hist.default(我們):'x'必須是數字。
我需要做什麼才能繪製我的三個變量的直方圖?

回答

15

由於千位分隔符,數據將被讀取爲'非數字'。所以,你需要將其轉換:

we <- gsub(",", "", we) # remove comma 
we <- as.numeric(we)  # turn into numbers 

,現在你可以做

hist(we) 

和其他數字運算。

+1

的修正:它不是千個分隔符,它的小數點,在一些國家是一個逗號。所以它需要被一個點取代,而不是被刪除。 – momobo 2010-02-28 10:50:48

+0

是的,我替換了一個點的逗號,一切正常。 – 2010-03-02 15:14:24

+1

對'read.table','read.csv',''sep =「」'有一個參數,它允許你在R級設置它。 – 2010-03-02 15:48:18

3

注意,你還可直接從ce使用列名積(逗號移除後):

hist(ce$Weight) 

(而不是使用hist(ce[1]),這將導致相同的「必須是數字」錯誤)。

這也適用於數據庫查詢結果。

0

使用「DEC」的說法通過增加設置「」作爲小數點:

ce= read.table("file.txt", header= T, dec=",") 
相關問題