2012-12-07 5 views
5

मैं एक या दो समूह चर का उपयोग करके कई उपग्राफ बनाने के लिए "के लिए" के "द्वारा" उपयोग करने का प्रयास कर रहा हूं। दोनों समूह चर एक कारक चर हैं (सेक्स एक डमी है और पिता की सामाजिक स्थिति में कई स्तर हैं)। मैं किंवदंती या ग्राफ के शीर्षक में समूह का स्तर (उर्फ नाम) कैसे जोड़ सकता हूं?एकाधिक ग्राफ शीर्षक बनाने के लिए "द्वारा" का उपयोग

यह वह कोड है जिसका मैं उपयोग कर रहा हूं।

library(TraMineR) 
library(Hmisc) 
data(biofam) 
biofam.lab <- c("Parent", "Left", "Married", "Left+Marr", 
      "Child", "Left+Child", "Left+Marr+Child", "Divorced") 
biofam.seq <- seqdef(biofam, 10:25, labels=biofam.lab) 

class(biofam$sex) 
levels(biofam$sex) 
describe(biofam$sex) 

class(biofam$cspfaj) 
levels(biofam$cspfaj) 
describe(biofam$cspfaj) 

### Simple plots 
seqdplot(biofam.seq) 
seqdplot(biofam.seq, group=biofam$sex, title="Marital status by gender") 

### Plot with automatic title using "by" 
by(biofam.seq, biofam$sex, function(X) seqdplot(X, title="X$sex[1]")) 
by(biofam.seq, biofam$sex, function(X) seqdplot(X, title=X$sex[1])) 

### Plot with automatic title and multiple-grouping using "for" 
for(n in c(1, 2, 3)) { 
    seqdplot(subset(biofam.seq, subset=biofam$cspfaj==(n)), title="(n)") 
} 
for(n in c(1, 2, 3)) { 
    seqdplot(subset(biofam.seq, subset=biofam$cspfaj==(n)), group=biofam$sex, title="(n)") 
} 
+1

कृपया कोड पोस्ट करें जिसे काटा और चिपकाया जा सकता है और साथ काम करने के लिए एक उदाहरण प्रदान करेगा। उस पृष्ठ पर डेटा.फ्रेम नामक कोई डेटा ऑब्जेक्ट नहीं है। –

+0

शायद, मेरा उदाहरण कोड अब मेरे प्रश्न को स्पष्ट बनाता है। –

+0

हां, यह अधिक स्पष्ट है, हालांकि मुझे लूप के भीतर 'seqdplot' कॉल के साथ एक त्रुटि मिलती है। (सीमाओं से बाहर एक सबस्क्रिप्ट ... क्या है कि आप देख रहे हैं?) –

उत्तर

2

seqdplot समारोह यह आप के लिए स्वचालित रूप से कर सकते हैं समूह तर्क का उपयोग:

seqdplot(seqobject, group=data.frame$group) 

जहां seqobject seqdef फ़ंक्शन के साथ बनाई गई वस्तु है।

+0

पर पारित हो जाता है वास्तव में बहुत अच्छी सुविधा है, लेकिन मैं दो (या अधिक) समूहीकरण चर का उपयोग करना चाहता हूं, इसलिए मैं इसे" द्वारा "या" के लिए "जोड़ना चाहता हूं दूसरे समूह चर के प्रत्येक नए स्तर के लिए नए ग्राफ का उत्पादन करने के लिए आदेश। –

+0

यदि आप एकाधिक समूह चर बदलना चाहते हैं, तो आप "इंटरैक्शन" फ़ंक्शन का उपयोग कर सकते हैं: seqdplot (seqobject, group = interaction (data.frame $ group1, data.frame $ group2, ...)) –

2

आप function(X) रूप data.frame सबसेट पास करके एक समारोह के तर्कों को समायोजित कर सकते हैं:

by(data.frame, data.frame$group, function(X) seqdplot(X, title=X$group[1])) 
+0

शीर्षक को एक स्ट्रिंग इनपुट की आवश्यकता है। चर के स्तर का उपयोग करते हुए मैं स्ट्रिंग के रूप में "एक्स $ समूह [1]" कैसे दर्ज कर सकता हूं? –

+0

ऐसा प्रतीत होता है कि आप 'by' में दो अलग-अलग ऑब्जेक्ट्स का उपयोग कर रहे हैं। ध्यान रखें कि केवल पहला ऑब्जेक्ट 'फ़ंक्शन (एक्स) ' –

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