2017-10-31 15 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^31のベクトルについてしかないようです。

オブジェクトのメモリサイズが任意の制限を超えていることをユーザーに通知するためにRStudioによって追加された純粋に有益なコメントですか?

+1

右。それはちょうど任意の制限/記述であり、オブジェクトの基本的な構造には関係しません。あなたは、これがR自身のいわゆる「ロングベクトル」とは別のものであるということも間違いありません。 –

答えて

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検索機能を使用しました。キーワード "large environment"または "large numeric environment"環境ウィンドウを制御しているように見えるモジュールを探しました。候補者の中で私は手動で "大"を探して、上記を見つけました。 – Chris