2016-09-20 46 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. 或者您可以将数据浏览器设置为一个独立的窗口,工具栏按钮显示在新窗口中,然后右键单击以在需要时刷新此窗口。这比刷新更快。