2016-09-20 44 views
0

當我向數據表中添加列時,全局環境中的描述是否更新是否正常?當添加列時,爲什麼當我將它分配給DT時,必須調用對象兩次?添加列後的數據錶行爲

rm(list=ls()) 
if(!require(data.table)) { install.packages("data.table"); require(data.table)} 
DT<-data.table(v1 = runif(50, 0, 10), v2 = runif(50, 0, 10)) 
DT[,v3:=v1+v2] 
DT 
DT<-DT[,v4:=v1+v2] 
DT 
DT 
+0

可能重複:http://stackoverflow.com/questions/32988099/data-table-objects-not-printed-after-returned-from-function – Jaap

+4

是的,這是正常的(如果你指的是RStudio 「環境」面板)。由於對象實際上並沒有增長(由於先前的過度分配),因此RStudio無法知道它已經增長。 – Roland

+0

好吧,印刷的東西似乎是重複的。 是的,我指的是RStudio「環境」窗格。爲什麼這是正常的?它什麼時候更新? –

回答

2

的問題是特定於RStudio(它顯示在大部分時間的全球環境,但它可以切換到其他環境)環境窗格,然後更新對象:

  1. 你可以單擊RStudio刷新,但我覺得它很慢,需要刷新所有內容,尤其是在環境中有很多巨大對象的情況下。

  2. 你可以點擊對象在數據瀏覽器中打開它,這將顯示更新的數據。如果該對象已經在數據瀏覽器中打開,請再次單擊以更新。這比刷新快得多。

  3. 或者您可以將數據瀏覽器設置爲一個獨立的窗口,工具欄按鈕顯示在新窗口中,然後右鍵單擊以在需要時刷新此窗口。這比刷新更快。