एक लंबी स्क्रिप्ट में मुझे डेटाफ्रेम बी (1456000) की पंक्तियों की संख्या के साथ एक वेक्टर ए (2614) की लंबाई गुणा करना है।आर: सरल गुणा पूर्णांक ओवरफ्लो
2614 * 1456000
[1] 3805984000
काम करने के लिए गुणा प्राप्त करने के लिए एक ही रास्ता round(length(A)) * nrow(B)
या length(A) * round(nrow(B))
है: वहाँ कोई समस्या नहीं है, हालांकि जब मैं एक ही संख्याओं को गुणा मैं संदेश NAs produced by integer overflow
मिलता है मैं length(A) * nrow(B)
साथ कि सीधे है। लेकिन length
और nrow
द्वारा उत्पादित संख्याओं को किसी भी तरह पूर्णांक होना चाहिए! इसके अलावा, मैं निम्नलिखित समारोह समारोह is.integer के लिए मदद पृष्ठ पर सुझाव के साथ इस परीक्षण किया ...
is.wholenumber <- function(x, tol = .Machine$double.eps^0.5) abs(x-round(x)) < tol
... और हां, वे पूर्णांक हैं। तो मुझे यहां "राउंड" क्रैच की आवश्यकता क्यों है? बहुत परेशान ... किसी को पता चला है कि पृष्ठभूमि में क्या चल रहा है?
'2614 * 1456000' हैं ** नहीं ** पूर्णांक ...'> वर्ग (1,456,000) [1] "सांख्यिक" > वर्ग (1456000L) [1] "पूर्णांक" ' – Michele
धन्यवाद @Michele, इस टिप्पणी के कारण मैंने अपना जवाब थोड़ा सा अपडेट किया। –