2013-02-09 14 views
5

को महत्व देता है यहाँ डेटा के प्रकार है कि मैं एक csv फ़ाइल के रूप में आयात करने कर रहा हूँ है:, मैं में मूल्यों के लिए एक boxplot जेनरेट करना चाहते हैंggplot: एकाधिक स्तंभ के Boxplot

RPID mm ID Time Freq Freq.1 Freq.2 
RPO483 1 B6AC 5 23301 30512 
RPO483 1 B6AC 25 19  17 
RPO244 1 B6C  5 14889 20461 
RPO244 1 B6C  25 81  86 
RPO876 1 G3G3A 5 106760 59950 103745 
RPO876 1 G3G3A 25 4578 38119 37201 
RPO876 7 F3G3A 5 205803 148469 173580 
RPO876 7 F3G3A 25 28648 30321 26454 
RPO939 7 F3E324A 5 242285  
RPO939 7 F3E324A 25 42837  
RPO934 7 F3E325A 5 242001 129272 112371 
RPO934 7 F3E325A 25 73057 58685 66582 

प्रत्येक "आईडी" के लिए कॉलम "Freq", "Freq.1" और "Freq.2"। हालांकि, वर्तमान में मैं केवल सफलतापूर्वक एक वाई मूल्य साजिश करने में सक्षम हूँ - उदाहरण के लिए:

dataset <- read.csv("~/R/dataset.csv") 
library(ggplot2) 
p <- ggplot(dataset) 
p + geom_boxplot(aes(x=ID, y=Freq, color=mm)) 

मैं की तरह y = ग (फ्रीक, Freq.1, Freq.2) कुछ कोशिश की है, लेकिन इस परिणाम

Error: Aesthetics must either be length one, or the same length as the dataProblems:ID 

मुझे यकीन है कि वहाँ इस के लिए एक सरल उपाय है, लेकिन जैसा कि मैंने आर करने के लिए बहुत नया हूँ, मैं नहीं बता सकता है, तो यह गलत डेटा स्वरूप की एक समस्या है, गलत वाक्य रचना: निम्नलिखित में , गलत पैकेज या पूरी तरह से कुछ और।

किसी भी मदद की सराहना की जाएगी!

उत्तर

14

प्लॉट करने के लिए आपको डेटा को दोबारा बदलने की जरूरत है।

सबसे पहले मैंने आपका डेटा पढ़ा। ध्यान दें कि आपके पास कुछ NA मान हैं।

dat <- read.table(text = ' 
RPID mm ID Time Freq Freq.1 Freq.2 
RPO483 1 B6AC 5 23301 30512 
RPO483 1 B6AC 25 19  17 
RPO244 1 B6C  5 14889 20461 
RPO244 1 B6C  25 81  86 
RPO876 1 G3G3A 5 106760 59950 103745 
RPO876 1 G3G3A 25 4578 38119 37201 
RPO876 7 F3G3A 5 205803 148469 173580 
RPO876 7 F3G3A 25 28648 30321 26454 
RPO939 7 F3E324A 5 242285  
RPO939 7 F3E324A 25 42837  
RPO934 7 F3E325A 5 242001 129272 112371 
RPO934 7 F3E325A 25 73057 58685 66582',head=T, fill=T) 

का उपयोग उदाहरण

library(reshape2) 
dat.m <- melt(dat,id.vars='ID', measure.vars=c('Freq','Freq.1','Freq.2')) 
library(ggplot2) 
p <- ggplot(dat.m) + 
     geom_boxplot(aes(x=ID, y=value, color=variable)) 

enter image description here

+0

के लिए reshape2 धन्यवाद। यह बहुत उपयोगी है। मेरा उद्देश्य (शायद खराब शब्द) एक बॉक्स में सभी मानों (Freq, Freq.1, Freq.2) को गठबंधन करना था। अब मैं देखता हूं कि यह आपके कोड के "रंग = परिवर्तनीय" भाग को समाप्त करके पूरा किया जा सकता है। – Kappa