背景:我在Linux Ubuntu 18.04.1 LTS上使用RStudio 1.1.456,内核:4.18.11-041811-generic,x86-64 cpu体系结构(这很重要,但以防万一...)。
假设我输入以下代码来构建一个简单的数据表:
library(data.table)
DT = data.table(group = c("b","b","b","a","a","c"))
> DT
group
1: b
2: b
3: b
4: a
5: a
6: c
在“环境”选项卡中,Rstudio显示对象DT,其中包含6个观测值和1个变量。
接下来,假设我输入以下命令(功能的特定选择.N
不会改变任何内容):
> DT[,numInGroup := .N,by = group]
RStudio的“全球环境”小组继续声称DT只有1个变量。但是,输入head(DT)
揭示确实确实添加并正确计算了变量numInGroup
:
> head(DT)
group numInGroup
1: b 3
2: b 3
3: b 3
4: a 2
5: a 2
6: c 1
此外,View(DT)
还显示了变量。最后,如果我执行
> DT2 <- DT
“全局环境”选项卡将DT2显示为具有两个变量。
最后,如果我随后执行
> DT <- DT2
它仍然不能显示正确数量的变量(也许这很明显-我不习惯R-但这不是我期望的那样)。如果我这样做
> DT <- copy(DT2)
或者我愿意
> rm(DT)
> DT <- DT2
很明显,这比我的薪水等级还高。这里发生了什么?我对R / RStudio不了解什么?