2016-08-04 90 views
-2

現在我正試圖在我的一個名爲output9.csv的文件上做一個鐘形曲線。R在計數數據

這裏是我的代碼,我想用z值來檢測異常值,並使用數據集的值和平均值之間的差值。將差值與標準偏差進行比較以找出異常值。 VA

#DATA LOAD 
data <- read.csv('output9.csv') 
height <- data$Height 

hist(height) #histogram 

#POPULATION PARAMETER CALCULATIONS 
pop_sd <- sd(height)*sqrt((length(height)-1)/(length(height))) 
pop_mean <- mean(height) 

但我有這個錯誤我試圖柱狀圖部分後,

> hist(height) 
Error in hist.default(height) : 'x' must be numeric 

應該如何解決這個問題?

回答

2

因爲我沒有你的數據,我只能猜測。你能提供嗎?或者至少有一部分?

你的數據是什麼類?你可以使用class(data)找出。最常用的方法是在data.frames中有表格式的數據。要將其中一列用於hist,您可以使用$運算符。確保你在一個實際存在的列上子集。您可以使用names(data)(如果datadata.frame)來找出數據中存在哪些列。使用nrow(data)可以找出數據中有多少行。

提取您的height後,您可以走得更遠。首先檢查你的height對象是否爲numeric並且有內容。你可以使用class(height)找出。

正如您在您的評論貼有下列名稱

names(data) 
# [1] "Host" "TimeStamp" "TimeZone" "Command" "RequestLink" "HTTP" [7] "ReplyCode" "Bytes" 

因此,您可以提取您height

height <- data$Bytes 

你嘗試將其轉換爲數字? as.numeric(height)可能會訣竅。 as.numeric()可以強制存儲爲字符的所有東西,但也可能是數字自動。以as.numeric("3")爲例。

這裏是我編寫的一個例子。

height <- c(1,1,2,3,1) 
class(height) 
# [1] "numeric" 

hist(height) 

這工作得很好,因爲數據是數字。

在下面的數據是數字,但格式爲字符。

height_char <- c("1","1","2","3","1") 
class(height_char) 
# [1] "character" 

hist(height_char) 
# Error in hist.default(height) : 'x' must be numeric 

所以,你必須首先強制轉換:

hist(as.numeric(height_char)) 

..和然後正常工作。

對於將來的問題:嘗試給Minimal, Complete, and Verifiable Examples

+0

嘿謝謝你!這是我有課後(高度)的錯誤:類(高度) [1]「NULL」 –

+0

我也運行nmueric代碼後我得到數字(0) –

+0

因此很明顯,沒有什麼存儲在您的對象'高度' 。你確定數據中有某些東西嗎?你確定你做的子集? – symbolrush