खोज…


संख्यात्मक

न्यूमेरिक पूर्णांक और डबल्स का प्रतिनिधित्व करता है और संख्याओं के वैक्टर को सौंपा गया डिफ़ॉल्ट मोड है। फ़ंक्शन is.numeric() मूल्यांकन करेगा कि क्या एक वेक्टर संख्यात्मक है। यह ध्यान रखना महत्वपूर्ण है कि यद्यपि पूर्णांक और युगल पास is.numeric() , फ़ंक्शन as.numeric() हमेशा डबल टाइप करने के लिए कनवर्ट करने का प्रयास करेगा।

x <- 12.3
y <- 12L

#confirm types
typeof(x)
[1] "double"
typeof(y)
[1] "integer"

# confirm both numeric
is.numeric(x)
[1] TRUE
is.numeric(y)
[1] TRUE

# logical to numeric
as.numeric(TRUE)
[1] 1

# While TRUE == 1, it is a double and not an integer
is.integer(as.numeric(TRUE))
[1] FALSE

युगल R का डिफ़ॉल्ट सांख्यिक मान है। वे डबल सटीक वैक्टर हैं, जिसका अर्थ है कि वे वेक्टर में प्रत्येक मूल्य के लिए 8 बाइट्स मेमोरी लेते हैं। R का एक भी सटीक डेटा प्रकार नहीं है और इसलिए सभी वास्तविक संख्याएं डबल परिशुद्धता प्रारूप में संग्रहीत हैं।

is.double(1)
TRUE
is.double(1.0)
TRUE
is.double(1L)
FALSE

इंटेगर पूरे नंबर हैं जो बिना किसी आंशिक घटक के लिखे जा सकते हैं। इसके बाद L से एक नंबर के साथ इंटेगर का प्रतिनिधित्व किया जाता है। बिना L के बाद किसी भी संख्या को दोहरा माना जाएगा।

typeof(1)
[1] "double"
class(1)
[1] "numeric"
typeof(1L)
[1] "integer"
class(1L)
[1] "integer"

हालांकि ज्यादातर मामलों में पूर्णांक या डबल का उपयोग करना मायने नहीं रखेगा, कभी-कभी पूर्णांक के साथ युगल की जगह कम मेमोरी और परिचालन समय का उपभोग करेगा। एक डबल वेक्टर प्रति तत्व 8 बाइट्स का उपयोग करता है जबकि एक पूर्णांक वेक्टर केवल 4 बाइट्स प्रति तत्व का उपयोग करता है। जैसा कि वैक्टर का आकार बढ़ता है, उचित प्रकारों का उपयोग नाटकीय रूप से प्रक्रियाओं को गति दे सकता है।

#  test speed on lots of arithmetic
microbenchmark(
  for( i in 1:100000){
  2L * i
  10L + i
},

for( i in 1:100000){
  2.0 * i
  10.0 + i
}
)
Unit: milliseconds
                                          expr      min       lq     mean   median       uq      max neval
 for (i in 1:1e+05) {     2L * i     10L + i } 40.74775 42.34747 50.70543 42.99120 65.46864 94.11804   100
   for (i in 1:1e+05) {     2 * i     10 + i } 41.07807 42.38358 53.52588 44.26364 65.84971 83.00456   100


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow