Кто-нибудь, пожалуйста, объясните мне правильное использование .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
Я хочу вернуть вектор индексов строк, где условие в i
равно TRUE
, например. какие строки имеют X
больше 20.
DT[X > 20]
# rows 4 & 5 are greater than 20
Чтобы получить индексы, я попытался:
DT[X > 20, .I]
# [1] 1 2
... но ясно, что я делаю это неправильно, потому что это просто возвращает вектор, содержащий 1, в число возвращаемых строк. (Который я думал, был в значительной степени тем, для чего был .N
).
Извините, если это кажется очень простым, но все, что мне удалось найти в документации data.table, это WHAT .I
и .N
do, а не КАК их использовать.