У меня есть data.table
с логическим столбцом. Почему имя логического столбца нельзя использовать напрямую для аргумента i
? См. Пример.Подмножество данных. Таблица по логическому столбцу
dt <- data.table(x = c(T, T, F, T), y = 1:4)
# Works
dt[dt$x]
dt[!dt$x]
# Works
dt[x == T]
dt[x == F]
# Does not work
dt[x]
dt[!x]
(+1) интересное использование функции 'force'. Как работает «сила» в этом случае? Как это изменяет среду/область? – Nishanth
Немного больше информации о _why_ [здесь] (http://r.789695.n4.nabble.com/Indexing-by-a-logical-column-tp4665153p4665142.html). –
'force' в основном останавливает его, будучи проиндексированным как единственная переменная (это делается с некоторыми вычислениями в вызове внутри' .data.table') 'force', а затем заставляет оценивать' x', который вернет 'x' в пределах области данных. – mnel