पर आधारित डेटाफ्रेम को अनुक्रमणित करना मेरे पास एक बहुत बड़ा डेटाफ्रेम है जिसे मैं वेक्टर के एक निश्चित सबसेट के आधार पर एक सबसेट सहेजना चाहता हूं।वेक्टर सबसेट
> id<-c("ID1","ID2","ID2","ID3","ID4","ID4","ID4","ID4","ID4")
> status<-c("flag","flag","none","none","flag","flag","flag","none","flag")
> misc1ofmany<-c("etc1","etc2","etc3","etc4","etc5","etc6","etc7","etc8","etc9")
> df = data.frame(id, status, misc1ofmany) ; df
id status misc1ofmany
1 ID1 flag etc1
2 ID2 flag etc2
3 ID2 none etc3
4 ID3 none etc4
5 ID4 flag etc5
6 ID4 flag etc6
7 ID4 flag etc7
8 ID4 none etc8
9 ID4 flag etc9
मैं आईडी की सभी पंक्तियां चिह्नित किया गया है, उनके गैर चिह्नित किये सत्र के समावेशी करना चाहते हैं: संक्षेप में मैं कुछ इस तरह की है। अभी मैं grep द्वारा अन्य आईडी की अनुक्रमणिका प्राप्त करने और इसे वापस एक नए डीएफ में प्लग करने की कोशिश कर रहा हूं। असल रूप में मैं इस बाहर लिखा था मैं पता लगा कि grepl के साथ काम करने के लिए आसान हो सकता है:
> flaggedIDsdf <- df[flaggedIDs.allStats.Index] ; flaggedIDsdf
id status misc1ofmany
1 ID1 flag etc1
2 ID2 flag etc2
3 ID2 none etc3
4 ID4 flag etc5
5 ID4 flag etc6
6 ID4 flag etc7
7 ID4 none etc8
8 ID4 flag etc9
मैं इस तरह लग रहा है मैं से अधिक आसान होना चाहिए:
> flaggedIDs <- unique(as.vector(df$id[grep("flag",df$status)]))
> flaggedIDs.allStats.Index <- mapply(grepl,df$id,MoreArgs=list(x=flaggedIDs))
> flaggedIDs.allStats.Index
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[2,] FALSE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
[3,] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE
लेकिन मैं सिर्फ यहाँ करने के लिए प्राप्त करना चाहते हैं मैं इसे बाहर कर रहा हूं, हालांकि मैंने इसका लाभ उठाने के लिए कई संभावनाओं की कोशिश की है। इस सवाल को लिखने से यह मेरे दिमाग में एक स्पष्ट/सरल समस्या बन गया है (ऐसा लगता है कि मुझे अभी एक कदम याद आ रहा है), लेकिन अब मैं यह भी सोच रहा हूं कि इसके बारे में जाने का एक और अधिक प्रभावी तरीका है या नहीं।
बहुत सुरुचिपूर्ण संशोधित करें! जवाब के लिए धन्यवाद! – stites