Setkey на числовой столбец c - PullRequest
       4

Setkey на числовой столбец c

1 голос
/ 09 апреля 2020

У меня возникла проблема при установке клавиши цифры 1010 * для таблицы данных. Я взял mtcars фрейм данных и преобразовал его в data.table как:

dt<- as.data.table(mtcars,keep.rownames=T)

Затем я установил ключ для dt как цифра c столбец цил как:

setkey(dt,cyl)

Теперь я просто хотел подмножество dt , где cyl равно 4 или 6. Пытаясь поднастроить концепцию ключа, я сделал следующее:

dt[.(4,6)]

Нет ошибки, однако вывод противоречит тому, что я хотел сделать:

    cyl AM  mpg  disp  hp Drat    wt  qsec vs gear carb V2
 1:   4  1 22.8 108.0  93 3.85 2.320 18.61  1    4    1  6
 2:   4  0 24.4 146.7  62 3.69 3.190 20.00  1    4    2  6
 3:   4  0 22.8 140.8  95 3.92 3.150 22.90  1    4    2  6
 4:   4  1 32.4  78.7  66 4.08 2.200 19.47  1    4    1  6
 5:   4  1 30.4  75.7  52 4.93 1.615 18.52  1    4    2  6
 6:   4  1 33.9  71.1  65 4.22 1.835 19.90  1    4    1  6
 7:   4  0 21.5 120.1  97 3.70 2.465 20.01  1    3    1  6
 8:   4  1 27.3  79.0  66 4.08 1.935 18.90  1    4    1  6
 9:   4  1 26.0 120.3  91 4.43 2.140 16.70  0    5    2  6
10:   4  1 30.4  95.1 113 3.77 1.513 16.90  1    5    2  6
11:   4  1 21.4 121.0 109 4.11 2.780 18.60  1    4    2  6

Так что вместо получая подмножество строк, где cyl равно 4 или 6, я получаю строки, где cyl равно 4, а затем создан нежелательный столбец, имеющий значения 6. Я немного озадачен, потому что Я пробовал dt[.(4)] и dt[.(6)], и они работали нормально. Просто когда я даю более одного значения для фильтрации (например, 4,6 вместе в этом случае), это когда мне дают этот вывод. Любая помощь приветствуется. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...