से मैं data.table
उपयोग करना चाहते हैं, लेकिन j
भाग की गणना छोड़ by
लापता से मेल खाती है, तो चाहते हैं (NA
):छोड़ें एनए
यहाँ एक उदाहरण data.table
हैlibrary(data.table)
DT <- data.table(y=10, g=c(1,1,1,2,2,2,2,2,NA,NA))
यह इस
> DT
y g
1: 10 1
2: 10 1
3: 10 1
4: 10 2
5: 10 2
6: 10 2
7: 10 2
8: 10 2
9: 10 NA
10: 10 NA
तरह लग रहा है अब मैं by=
पर क्या करना चाहते हैंऔर दो पंक्तियों 9 और 10 को एक साथ लम्बा कर दिया जाएगा क्योंकि उनके पास समान मूल्य NA
है।
> DT[,.N, by=g]
g N
1: 1 3
2: 2 5
3: NA 2
मैं उत्पादन में NA
लाइन रखना चाहते हैं, लेकिन परिणाम में calculate हिस्सा है, यानी छोड़ना चाहते हैं।,, आउटपुट प्राप्त जहां N
रिक्त है जब g
NA
> DT[,.N, by=g]
g N
1: 1 3
2: 2 5
3: NA NA
है
मैंने सोचा कि मैं g
के .GRP
के माध्यम से उपयोग कर सकता हूं लेकिन यह केवल समूह सूचकांक देता है, न कि मूल्य। क्या by
वैरिएबल की अनुपस्थित स्थिति पर गणना को सशर्त बनाना संभव है?
आपके समूह चर के _value_ _can_ को 'j' में एक्सेस किया जाना चाहिए - यदि' j' में उपयोग किया जाता है तो इसकी लंबाई लंबाई होती है (देखें [FAQ 2.10 प्रत्येक समूह के अंदर, समूह चर लंबाई -1 क्यों हैं?] (Https://rawgit.com/wiki/Rdatatable/data.table/vignettes/datatable-faq.html#inside-each-group-why-are-the-group-variables-length-1)। तो कुछ 'डीटी [, अगर (! is.na (g))। (n =।) अन्यथा NA_integer_, द्वारा = g] 'काम करेगा। – Henrik
' i' तर्क में '! is.na (g) 'द्वारा फ़िल्टरिंग में क्या गलत है? 'डीटी [! Is.na (g), एन, द्वारा = जी]' –
@ स्कॉट्रिची मुझे लगता है कि परिणाम से 'एनए लाइन को हटा देगा। मैं अभी भी इसे बाद में शामिल करने के लिए चाहता हूं। – ekstroem