有人请向我解释一下.I返回data.table的行号的正确用法吗?
我有这样的数据:
require(data.table)
DT <- data.table(X=c(5, 15, 20, 25, 30))
DT
# X
# 1: 5
# 2: 15
# 3: 20
# 4: 25
# 5: 30
Run Code Online (Sandbox Code Playgroud)
我想返回行索引的向量,其中条件i是TRUE,例如哪些行X大于20.
DT[X > 20]
# rows 4 & 5 are greater than 20
Run Code Online (Sandbox Code Playgroud)
为了得到指数,我试过:
DT[X > 20, .I]
# [1] 1 2
Run Code Online (Sandbox Code Playgroud)
...但显然我做错了,因为它只返回一个包含返回行数的向量.(我认为这几乎.N是为了什么?).
很抱歉,如果这似乎是非常基本的,但所有的我已经能够在data.table文档中找到是什么.I和.N做什么,而不是如何使用它们.
我有以下data.table:
dt <- data.table(col1 = rep("a",6), col2 = c(1,1,1,2,3,1))
Run Code Online (Sandbox Code Playgroud)
现在我想用值"bigDog"替换col2中的所有1.我可以使用data.frame精神来做到这一点:
dt$col2[dt$col2==1,] <- "bigDog"
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有不同的方式,更多"data.table oriented"?