【发布时间】:2021-12-31 20:41:20
【问题描述】:
我只是在使用 data.table (library(data.table)) 尝试一些代码,并注意到我发现奇怪的行为。为什么这里的第一个代码将行名放入 rn 变量中,而第二个 sn-p 没有?我很好奇为什么会这样。我原以为copy() 和assign 是在setDT() 之前完成的,因此不必分两个单独的步骤执行。
保留行名:
dtcars <- copy(mtcars)
setDT(dtcars, keep.rownames=TRUE)
不保留行名:
setDT(dtcars <- copy(mtcars), keep.rownames=TRUE)
我什至尝试将赋值表示为一个函数,以确保它首先运行
setDT(`<-`(dtcars, copy(mtcars)), keep.rownames=TRUE)
将此与以下在调用 mean() 之前分配 x 的情况进行比较——我希望我的第二个 sn-p 表现得像这样,但如果以下表现得像我的第二个 sn-p 它将返回 @987654330 @。
mean(x <- c(rnorm(10, 0, 1), NA), na.rm=TRUE)
【问题讨论】:
标签: r data.table