2011-12-08 18 views
5

मैं ggplot2 में मानों की सूची की एक boxplot करने के लिए कोशिश कर रहा हूँ, लेकिन समस्या यह सूचियों से निपटने के लिए कैसे पता नहीं है कि, मैं क्या प्रयास करना चाहिए है?ggplot2 को सूची कैसे पास करें?

उदाहरण के लिए:

k <- list(c(1,2,3,4,5),c(1,2,3,4),c(1,3,6,8,14),c(1,3,7,8,10,37)) 
k 
[[1]] 
[1] 1 2 3 4 5 

[[2]] 
[1] 1 2 3 4 

[[3]] 
[1] 1 3 6 8 14 

[[4]] 
[1] 1 3 7 8 10 37 

अगर मैं boxplot() लिए एक तर्क के रूप k पारित यह दोषरहित संभाल और एक अच्छा उत्पादन (अच्छी तरह से बहुत अच्छा नहीं ... hehehe) होगा boxplot सभी मानों की श्रेणी के रूप में के साथ एक्स-अक्ष के रूप में वाई-अक्ष और सूची सूचकांक (प्रत्येक तत्व)।

मैं ggplot2 के साथ सटीक एक ही प्रभाव कैसे प्राप्त करना चाहिए? मुझे लगता है कि डेटाफ्रेम या मैट्रिस एक विकल्प नहीं हैं क्योंकि वेक्टर अलग-अलग लंबाई के होते हैं।

धन्यवाद

उत्तर

8

जवाब यह है कि तुम नहीं है। ggplot2 को डेटा फ्रेम, विशेष रूप से लंबे फॉर्म डेटा फ्रेम के साथ काम करने के लिए डिज़ाइन किया गया है। इसका मतलब है कि आप एक समूहीकरण कारक के साथ, एक लंबा वेक्टर के रूप में अपने डेटा की जरूरत है:

d <- data.frame(x = unlist(k), 
       grp = rep(letters[1:length(k)],times = sapply(k,length))) 
ggplot(d,aes(x = grp, y = x)) + geom_boxplot() 

enter image description here

और के रूप में टिप्पणी में कहा, melt इस पुस्तिका पुन: आकार देने के रूप में एक ही परिणाम प्राप्त होता है और बहुत सरल है। मुझे लगता है कि मैं चीजों को मुश्किल बनाना चाहता हूं।

+0

Hahahaha .. धन्यवाद, मैं ऐसा ही कुछ में सोचा है, लेकिन मैं इसे प्राप्त नहीं कर सका। असल में आपके विचार ने मुझे परीक्षण किया है यदि फ़ंक्शन 'पिघल' मेरे लिए यह करेगा, और यह एक आकर्षण की तरह काम करता है !! तो समाधान, अगर हम सादगी की तलाश में हैं, और वास्तव में हम हैं, 'पिघला' का उपयोग कर रहे हैं। – Lianzinho

+0

@ लिआनज़िन्हो हम्म ... मुझे आश्चर्य है कि किसने 'पिघलाया' लिखा था? :-) –

+0

@ gsk3 हाँ, मैंने अन्य सभी ग्राफिक्स करने के लिए 'पिघल' का उपयोग किया है, लेकिन किसी भी तरह से मैंने इसका उपयोग करने के बारे में नहीं सोचा था ... – Lianzinho

संबंधित मुद्दे