मैं कुछ विश्लेषणों को पूरा करने के लिए data.table
पैकेज का उपयोग कर रहा हूं। मेरे द्वारा उठाए जा रहे चरणों में से एक को कुल आंकड़े प्राप्त करने के लिए by =
फ़ंक्शन का उपयोग करना शामिल है। हालांकि, कुल by
सबसेट में अद्वितीय परिणामों पर समेकित की गणना की जानी चाहिए। मैं unique
का उपयोग कर रहा हूं और यह सुनिश्चित करने के लिए कि प्रत्येक by
समूह में विशिष्ट रिकॉर्ड होते हैं। थोड़ा नीचे की तरह कुछ:आर के डेटाटेबल में, डेटाटेबल की कुंजी को एसएसडी का उपयोग करके संदर्भित सबसेट में संरक्षित कैसे किया जाता है?
dt_new <- dt_old[,uFunc_MyFunction(x = unique(.SD)),by = grouping_var]
मैंने देखा है कि .SD
पर कुंजी dt_old
के लिए कुंजी सेट और by =
बयान के आधार पर भिन्न लग रहा था। जाहिर है, इस पर असर पड़ रहा था कि मेरे परिणामस्वरूप सबसेट अद्वितीय थे या नहीं।
मैं कुछ स्पष्टता प्राप्त करना चाहता था, इसलिए मैंने नीचे लिखा था।
library(data.table)
set.seed(1554)
dt_example <- data.table(id = 1:50,
site = sample(x = c("A","B","C"),
size = 50,
replace = TRUE,
prob = c(0.4,0.4,0.2)),
group = sample(x = c("Eta","Mu","Omicron","Psi"),
size = 50,
replace = TRUE),
team = sample(x = 1:3,
size = 50,
replace = TRUE,
prob = c(0.2,0.3,0.5)))
setkey(x = dt_example,
group,
team)
> dt_example[,as.list(key(.SD)),by = site]
site V1 V2
1: B group team
2: A group team
3: C group team
setkey(x = dt_example,
site,
group,
team)
> dt_example[,as.list(key(.SD)),by = site]
Empty data.table (0 rows) of 1 col: site
क्या मैं समझने की कोशिश कर रहा हूँ क्यों, पहले संस्करण में, .SD
के लिए महत्वपूर्ण अनुरूप है, जबकि, दूसरे संस्करण में, .SD
सभी में कोई कुंजी पड़ा है। मुझे लगता है कि इस तथ्य के साथ कुछ करना है कि by =
कॉलम सीधे .SD
में शामिल नहीं है, जो कुंजी तोड़ रहा है, लेकिन मैं अपने तर्क की पुष्टि करना चाहता था।
तो, मेरा प्रश्न यह है: डेटा तालिका, .SD
का सबसेट क्यों है, जब कोई कॉलम जिसमें मूल डेटा तालिका की कुंजी शामिल है, by
समूह चर के रूप में उपयोग किया जाता है?
के लिए शायद है। – eddi
@eddi एक एफआर क्या है? – TARehman
एफआर = फ़ीचर अनुरोध – Jaap