【问题标题】:data.table objects aren't updated in Rstudio environment paneldata.table 对象未在 Rstudio 环境面板中更新
【发布时间】:2016-03-10 15:51:20
【问题描述】:

使用:= 方法添加新变量后,环境面板中的 data.table 对象将不会更新其预览。但是str(dt) 显示了正确的详细信息,并且将dt 分配给新变量会在“环境”面板中产生正确的预览。

dt <- data.table(x = 1:10,
                 y = log(1:10),
                 z = (1:10)**2)
dt[, a := x + y, ]
dt[, b := x + z, ]
str(dt)
d <- dt

这是设计使然、已知错误还是有解决方案?这种行为很有趣,我很好奇发生这种情况的原因。

【问题讨论】:

  • 不过,您仍然可以手动刷新环境中的对象列表。
  • 仅供参考,你想要data.table(x = 1:10, y = ...) 而不是as.data.table(cbind(...))

标签: r data.table rstudio


【解决方案1】:

看起来 RStudio 仅在创建对象或点击刷新按钮时更新环境面板(如 @lukeA 所指)。
我不认为 bug 在这里是个好词,它可以是 RStudio 的设计理念,只在特定场景下更新对象的结构,而不是调查每个用户的调用是什么,来决定是否刷新是必需的。
但我知道这不是 RStudio 用户所期望的行为,但我认为它更适合作为 功能请求 通过引用调用检测而不是 错误报告

dir.create() 相比,此行为是一致的,后者会创建目录作为副作用。它也不会始终在工作目录面板中更新。

【讨论】:

  • 谢谢,这绝对有助于消除我的困惑。这是一个有趣的概念。环境面板中的所有其他对象(我使用过的)都会在更改时更新/刷新。
  • @Mitch 我相信这取决于您是更新制作内存副本还是通过引用更新。后者用于提高效率,因此对元数据不是很有用,但对数据绝对有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-13
  • 2021-03-26
  • 1970-01-01
  • 2011-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多