my.data.frame <- subset(data , V1 > 2 | V2 < 4)
एक वैकल्पिक समाधान जो इस फ़ंक्शन के व्यवहार की नकल करता है और एक फ़ंक्शन बॉडी में शामिल करने के लिए अधिक उपयुक्त होगा:
new.data <- data[ which( data$V1 > 2 | data$V2 < 4) , ]
कुछ लोग whichआवश्यकतानुसार उपयोग न करने की आलोचना करते हैं , लेकिन यह NAमूल्यों को अवांछित परिणामों को वापस फेंकने से रोकता है । दो (बिना वी 1 या वी 2 में से किसी के लिए एनए-पंक्तियों को वापस नहीं करना) समतुल्य whichहोगा। निम्न विकल्प निम्न होंगे:
new.data <- data[ !is.na(data$V1 | data$V2) & ( data$V1 > 2 | data$V2 < 4) , ]
नोट: मैं उस गुमनाम योगदानकर्ता का शुक्रिया अदा करना चाहता हूं जिसने कोड में त्रुटि को तुरंत ठीक करने का प्रयास किया, एक ऐसा संशोधन जो मॉडर्नाइजर्स द्वारा खारिज कर दिया गया। वास्तव में एक अतिरिक्त त्रुटि थी जिसे मैंने देखा जब मैं पहले वाले को सही कर रहा था। सशर्त खंड जो NA मानों की जांच करता है, उसे पहले करने की आवश्यकता होती है, क्योंकि इसे तब तक संभाला जाना चाहिए जैसा कि मैं चाहता था, जब से ...
> NA & 1
[1] NA
> 0 & NA
[1] FALSE
तर्कों का क्रम 'और' का उपयोग करते समय मायने रखता है।