मैं एक डेटासेट s से आउटलेर्स को हटाने की कोशिश कर रहा हूं जिसमें 3 चर शामिल हैं:

id consumption period
 a      0.1    summer
 a      0.2    summer
 b      0.3    summer
 a      0.4    winter
 b      10     winter
 c      12     winter 

मैंने s से आउटलेर्स को हटाने के लिए outliers <- s$consumption[!s$consumption %in% boxplot.stats(s$consumption)$out] का उपयोग किया और कुछ इस तरह मिला:

consumption
   0.1
   0.2
   0.3
   0.4

हालांकि, मैं नीचे ऐसा कुछ प्राप्त करना चाहता हूं:

id consumption period
 a      0.1    summer
 a      0.2    summer
 b      0.3    summer
 a      0.4    winter

लेकिन $out फ़ंक्शन केवल मुझे संख्याओं के साथ कॉलम को हटाने की अनुमति देता है (कारकों के साथ नहीं)।

r
0
SssssssAaaaaaa 21 अगस्त 2021, 03:25
3
out <- s[!s$consumption %in% boxplot.stats(s$consumption)$out, ]
 – 
Ronak Shah
21 अगस्त 2021, 05:24
मैंने आपके कोड की कोशिश की लेकिन यह अपरिभाषित कॉलम चयनित कहता है।
 – 
SssssssAaaaaaa
21 अगस्त 2021, 14:45
क्या आप सुनिश्चित हैं कि आपने कोड को सही ढंग से कॉपी किया है? विशेष रूप से अल्पविराम लगाना? मैं इस कोड में कोई कॉलम नहीं बल्कि केवल पंक्तियों का चयन कर रहा हूं।
 – 
Ronak Shah
21 अगस्त 2021, 15:09
क्षमा करें, मैंने सही ढंग से कॉपी नहीं की। मैंने एक कम सरलीकृत समाधान भी निकाला है, यदि आप रुचि रखते हैं तो आपके पास एक चेक हो सकता है।
 – 
SssssssAaaaaaa
21 अगस्त 2021, 15:20

1 उत्तर

सबसे बढ़िया उत्तर

मुझे एक समाधान मिला जो मुझे outliers <- s$consumption[!s$consumption %in% boxplot.stats(s$consumption)$out] से प्राप्त आउटपुट के min को खोजने के लिए है, जो इस मामले में l है:

consumption
   0.1
   0.2
   0.3
   0.4

मेरा min मान जानने के बाद, मैं एक शर्त सेट करके s का सबसेट ले सकता हूं जहां consumption को min(l) से कम होना चाहिए।

new <- subset(s, consumption < min(l))

0
SssssssAaaaaaa 21 अगस्त 2021, 15:16