2016-08-04 21 views
-2

Im Moment versuche ich eine Glockenkurve auf einer Datei namens output9.csv auf meiner.R in Daten zählen

Hier ist mein Code, ich möchte z-Score verwenden, um Ausreißer zu erkennen, und verwendet die Differenz zwischen dem Wert und Mittelwert des Datensatzes. Die Differenz wird mit der Standardabweichung verglichen, um die Ausreißer zu finden. 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) 

Aber ich habe diesen Fehler, nachdem ich das Histogramm Teil versucht,

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

wie soll ich dieses Problem beheben?

Antwort

2

Da ich Ihre Daten nicht habe, kann ich nur raten. Kannst du es bereitstellen? Oder zumindest ein Teil davon?

Welche Klasse haben Ihre Daten? Sie können class(data) verwenden, um herauszufinden. Die gebräuchlichste Methode ist, tabellenartige Daten in data.frames zu haben. Um eine Ihrer Spalten so zu unterteilen, dass sie für die hist verwendet wird, können Sie den Operator $ verwenden. Stellen Sie sicher, dass Sie eine Teilmenge in einer tatsächlich vorhandenen Spalte haben. Sie können names(data) (wenn data ist ein data.frame) verwenden, um herauszufinden, welche Spalten in Ihren Daten vorhanden sind. Verwenden Sie nrow(data), um herauszufinden, wie viele Zeilen in Ihren Daten vorhanden sind.

Nach dem Extrahieren Ihrer height können Sie weiter gehen. Überprüfen Sie zunächst, ob Ihr Objekt heightnumeric ist und etwas darin ist. Sie können class(height) verwenden, um herauszufinden.

Wie geschrieben Sie in Ihrem Kommentar, den Sie die folgenden Namen haben

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

Daher können Sie Ihre height mit

height <- data$Bytes 

extrahieren Haben Sie versucht, es zu numerischen Format konvertieren? as.numeric(height) könnte den Trick machen. as.numeric() kann alle Dinge erzwingen, die als Zeichen gespeichert sind, aber auch automatisch Zahlen sein können. Versuchen Sie as.numeric("3") als ein Beispiel.

Hier ein Beispiel, das ich erfunden habe.

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

hist(height) 

Das funktioniert gut, weil die Daten numerisch sind.

Im Folgenden sind die Daten Zahlen, aber als Zeichen formatiert.

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 

So haben Sie es zu zwingen, zuerst:

hist(as.numeric(height_char)) 

..und dann funktioniert es gut.

Für zukünftige Fragen: Geben Sie Minimal, Complete, and Verifiable Examples.

+0

hey danke! Das ist der Error, den ich nach der Klasse (Höhe) habe: Klasse (Höhe) [1] "NULL" –

+0

ich bekomme auch numerisch (0) nachdem ich den nmueric Code –

+0

ausgeführt habe Also ist offensichtlich nichts in deinem Objekt 'height' gespeichert . Sind Sie sicher, dass Ihre Daten etwas enthalten? Sind Sie sich über die Teilmenge sicher, die Sie tun? – symbolrush