2017-12-26 7 views
1

Zuerst habe ich erstellt haben zwei vectors und setzen sie zusammenein Balkendiagramm in R von Daten in einer Datei erstellen

Vectors: VektorLHI und VektorRHI

sumLHIundRHI<-rbind2(VektorLHI,VektorRHI)

Dann bekam ich:

data

Dann habe ich erstellt:

Barplot from my File

mit dem Befehl:

barplot(sumLHIundRHI[,-1]) 

Aber wenn ich versuche beside=TRUE zu setzen, bekomme ich einen Fehler

barplot(sumLHIundRHI[,-1], beside=TRUE) 
Error in -0.01 * height : non-numeric argument to binary Operator 

Wie ist es richtig?

+0

für jede Spalte (mit Ausnahme von „infact“) sollte es zwei Säulen sein, mit der Unterscheidung zwischen infact = L und Infakt = R – Silvia

+1

Könnten Sie einen reproduzierbaren Code mit Daten teilen? (https://stackoverflow.com/ Hilfe/mcve) –

+0

Bitte teilen Sie "Kopf" Ihrer Daten. – MKR

Antwort

0

Angenommen, Sie Daten in einer reproduzierbaren Art und Weise geteilt haben:

sumLHIundRHI_reduced <- data.frame(Infarkt=c("L","R"), 
      AG=c(2,5), 
      PG=c(4,0), 
      pP=c(3,3)) 

denke ich, das Problem ist die Struktur Ihrer Daten ist. Insbesondere die erste Spalte Ihres Datensatzes, weil barplot Funktion benötigt einen Vektor oder eine Matrix von Werten, und Ihre Daten scheint ein Datenrahmen zu sein:

data_ordered <- as.matrix(sumLHIundRHI_reduced[,2:4]) 
row.names(data_ordered) <- levels(sumLHIundRHI_reduced$Infarkt) 

Nun wird die Funktion einwandfrei funktionieren:

barplot(data_ordered, main="Your Plot", 
     xlab="Number of ???", col=c("darkblue","red"), 
     legend = rownames(data_ordered),beside=TRUE) 

enter image description here

Verwandte Themen