使用:=
方法添加新变量后,环境面板中的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
这是设计,已知错误还是有解决方案?这种行为很有趣,我很好奇这种情况发生的原因。
答案 0 :(得分:3)
看起来RStudio仅在创建对象时或者当您点击刷新按钮时更新环境面板(如@lukeA所指示)。
我不认为 bug 在这里是好词,它可以是RStudio的设计概念,仅在特定场景下更新对象的结构,而不是调查每个用户的调用是什么,以决定是否刷新是必需的。
但我知道这对RStudio用户来说不是理想的行为,但我认为它更适合作为功能请求通过引用调用来检测而不是错误报告。
与创建目录作为副作用的dir.create()
相比,此行为是一致的。它也不会在工作目录面板中更新。