2016-08-04 7 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 <- data$Bytes 

であなたのheightを抽出することができますが、数値に変換しようとしましたか? 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)) 

を..andそれが正常に動作します。

今後の質問については、Minimal, Complete, and Verifiable Examplesとしてください。

+0

ありがとうございました! (高さ) [NULL] –

+0

また、私はnmuericコード –

+0

を実行した後に数値(0)を取得するので、明らかにオブジェクトには何も格納されていない 'height' 。あなたのデータには何かがありますか?あなたがしているサブセットについて確かですか? – symbolrush