У меня возникла проблема при установке клавиши цифры 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 вместе в этом случае), это когда мне дают этот вывод. Любая помощь приветствуется. Спасибо.