2017-10-31 1 views
4

: 환경 창에서RStudio에서 "큰 벡터"란 무엇입니까? RStudio 사용

a <- rep(1, 1e4) 
b <- rep(1, 1e5) 

ab 다르게 표시됩니다

enter image description here

Large numeric의 의미는 무엇입니까? 나는 그것이 b이 R로 특별한 방법으로 처리되었다는 것을 의미한다고 생각했지만, str을 사용하면 특별한 것을 볼 수 없습니다. 나는 또한 long vectors에 대해 읽었지 만 길이가 2보다 큰 벡터에 대해서만 보인다.

RStudio가 객체의 메모리 크기가 임의의 제한보다 크다는 것을 사용자에게 알리기 위해 추가 한 순전히 유익한 설명입니까?

+1

오른쪽; 이것은 단지 임의적 인 제한/설명이며 객체의 기본 구조와 관련이 없습니다. R이 소유하고있는 소위 말하는 '긴 벡터 (long vectors)'와는 별개의 문제라는 점도 옳습니다. –

답변

2

이것은 절반의 MB보다 큰 오브젝트에 대한 규정 자처럼 보입니다. See line 460 here.

# for large objects (> half MB), don't try to get the value, just show 
    # the size. Some functions (e.g. str()) can cause the object to be 
    # copied, which is slow for large objects. 
    if (size > 524288) 
    { 
    len_desc <- if (len > 1) 
       paste(len, " elements, ", sep="") 
      else 
       "" 
    # data frames are likely to be large, but a summary is still helpful 
    if (is.data.frame(obj)) 
    { 
     val <- "NO_VALUE" 
     desc <- .rs.valueDescription(obj) 
    } 
    else 
    { 
     val <- paste("Large ", class, " (", len_desc, 
        capture.output(print(size, units="auto")), ")", sep="") 
    } 
    contents_deferred <- TRUE 
    } 

는 코멘트 당으로서,이 개체를 복사 큰 개체에 대한 성능을 향상에서 나중에 str() 전화를 방지 할 수 있습니다.

paste("Large", ...) 호출은 수정 된 설명을 만듭니다. 내 컴퓨터에서

이 여기에 입증 할 수 있습니다

small <- 1:131050 
large <- 1:132000 

object.size(small) 
# 524240 bytes 
object.size(large) 
# 528040 bytes 
+0

감사합니다. 호기심에서 : 거대한 RStudio 레포에서 이것을 어떻게 찾을 수 있었습니까? (나는 질문을하기 전에 살펴 봤지만 나의 유일한 키워드는 "도움이되지 않는 큰"이었다 ...) – Scarabee

+1

@Scarabee 나는 키워드 "큰 환경"또는 "큰 숫자 환경"을 사용하여 gitbhub 검색 기능을 사용했다. 환경 창을 제어하는 ​​것처럼 보이는 모듈을 찾았습니다. 후보자 내에서 나는 "큰"수동으로 보았고 위를 발견했다. – Chris

관련 문제