Подмножество data.table по индексу столбца, полученному из другого объекта (числовой вектор размера 1) - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь установить подстановку data.table на основе параметров l (номер строки) и cn (номер столбца), которые сами являются объектами. Подмножество на основе l, кажется, работает. Но подмножество cn (или get(cn)) никогда не работает.

Например:

> dt <- iris %>% data.table()
> 
> #Subseting (works)
> dt[10,3]
   Petal.Length
1:          1.5
> 
> #Subseting by exteral parameter (object)
> cn <- 3 # Petal.Length
> l <- 10
> dt[l,3] #works
   Petal.Length
1:          1.5
> dt[10,cn]
Error in `[.data.table`(dt, 10, cn) : 
  j (the 2nd argument inside [...]) is a single symbol but column name 'cn' is not found. Perhaps you intended DT[, ..c]. This difference to data.frame is deliberate and explained in FAQ 1.1.
> dt[l,cn]
Error in `[.data.table`(dt, l, cn) : 
  j (the 2nd argument inside [...]) is a single symbol but column name 'cn' is not found. Perhaps you intended DT[, ..c]. This difference to data.frame is deliberate and explained in FAQ 1.1.
> dt[l,get(cn)]
Error in get(cn) : invalid first argument

Есть ли способ подмножества номера столбца, поступающего от внешнего объекта?

...