相关疑难解决方法(0)

使用.I返回包含data.table包的行号

有人请向我解释一下.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)

我想返回行索引的向量,其中条件iTRUE,例如哪些行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做什么,而不是如何使用它们.

r data.table

42
推荐指数
3
解决办法
2万
查看次数

有条件地用data.table替换列值

我有以下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"

r data.table

38
推荐指数
1
解决办法
4万
查看次数

标签 统计

data.table ×2

r ×2