2015-02-17 21 views
17

कृपया मेरा क्षमा करें यदि मेरा प्रश्न काफी बुनियादी है। मैंने df <- data.frame() द्वारा एक खाली डेटा फ्रेम बनाया और स्पष्ट रूप से डेटा फ्रेम पूर्ण (खाली) है। जब मैं यह जांचने की कोशिश करता हूं कि डेटा फ्रेम is.null(df) से खाली है या नहीं, तो परिणाम गलत होता है। NULL और empty के बीच आर में कोई अंतर है। इस मामले में यदि डेटा फ्रेम NULL नहीं है, तो खाली डेटा फ्रेम में क्या है और यह NULL होगा। धन्यवादएक खाली डेटाफ्रेम क्यों है .null() परीक्षण विफल रहता है?

+1

'df' मौजूद है, इसलिए यह शून्य नहीं है। 'is.empty (डीएफ)' सच है, हालांकि। – cphlewis

+0

@cphlewis कहां से आता है 'is.empty'? –

+1

ओह, क्षमा करें, मुझे लगता है कि यह 'spatstat' से है! – cphlewis

उत्तर

30

df पूर्ण नहीं है क्योंकि यह एक डेटा फ्रेम है और इस प्रकार कुछ परिभाषित गुण हैं। उदाहरण के लिए, इसमें एक कक्षा है। और आप nrow(df) का उपयोग कर डेटा फ्रेम में पंक्तियों की संख्या प्राप्त कर सकते हैं, भले ही परिणाम शून्य होना चाहिए। इसलिए, पंक्तियों की संख्या भी अच्छी तरह परिभाषित है।

FAS के रूप में के रूप में मैं जानता हूँ कि, वहाँ आधार आर में कोई is.empty आदेश तुम कर सकते हो क्या, है, जैसे निम्नलिखित

is.data.frame(df) && nrow(df)==0 

यह एक खाली डेटा फ्रेम के लिए सही दे देंगे (जो है, एक बिना पंक्तियों के) और अन्यथा झूठी।

is.data.frame जांचने का कारण यह है कि nrow त्रुटि उत्पन्न कर सकता है, यदि यह डेटा फ्रेम से किसी और चीज पर लागू होता है। &&, nrow(df) के लिए धन्यवाद केवल df एक डेटा फ्रेम है यदि मूल्यांकन किया जाएगा।

+0

आप देख सकते हैं कि 'नाम (डीएफ) 'खाली है (' वर्ण (0) ') भी। – cphlewis

+0

'nrow (df) == 0' द्वारा डीएफ की पंक्तियों की जांच करने के लिए यह स्पष्ट रूप से '0' है और' is.data.frame (df) ' –

+3

लिखने की कोई आवश्यकता नहीं है, इस पर निर्भर करते हुए कि आप खाली कैसे परिभाषित करते हैं, आप केवल चेक नहीं कर सकते 'नाम (DF)'। निम्नलिखित डेटा फ्रेम 'df <-data.frame (a = numeric(), b = numeric()) 'सामग्री नहीं है, लेकिन नामों को फिर भी परिभाषित किया गया है। तो मेरी परिभाषा कहती है कि यह खाली है, तुम्हारा कहना होगा कि यह नहीं है। निश्चित रूप से आप जो भी आक्रामक रूप से जांचना चाहते हैं, उसके बारे में सब कुछ। – Stibu

0

data.frame() एक ऐसी वस्तु बनाता है जिसमें डेटा फ्रेम कक्षा है। क्योंकि ऑब्जेक्ट मौजूद है, is.nullFALSE वापस आ जाएगा। NULL चर में कोई कक्षा नहीं है और कोई सामग्री नहीं है।

+1

'है।शून्य ''FALSE' वापस कर देगा क्योंकि ऑब्जेक्ट न्यूल नहीं है; क्योंकि ऑब्जेक्ट * मौजूद है *, 'is.null' वापस नहीं आएगा" त्रुटि: ऑब्जेक्ट नहीं मिला। " – cphlewis

-3

ऊपर दिए गए उत्तर सही हैं, is.na और is.null आर में खाली मूल्य का पता नहीं लगा सका। यह है कि मैं इस मामले में आपके डेटा फ्रेम 'डीएफ' में कितने खाली मूल्य की गणना करने के लिए करूंगा ।

is.na (df [df == '']) < - TRUE # यह सिर्फ डीए में खाली मान पर NA को प्रतिस्थापित करता है।

योग (is.na (df)) # आपको यह बताएगा कि आपके 'डीएफ' में आपके कितने खाली मूल्य हैं।

आशा है कि यह सहायक होगा।

+1

मुझे नहीं लगता कि वास्तव में ओपी ने क्या पूछा था। मैं आपको SO पर सवालों के जवाब देने से हतोत्साहित नहीं करना चाहता, लेकिन यह उत्तर (जब यह किसी के * प्रश्न का उत्तर देता है) सवाल से बहुत दूर है ... –

संबंधित मुद्दे