R 数字列上的设置键

R 数字列上的设置键,r,data.table,R,Data.table,在数据表上设置数字键时遇到问题。我将mtcars数据帧转换为数据。表如下: dt<- as.data.table(mtcars,keep.rownames=T) 现在我只想将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.32

在数据表上设置数字键时遇到问题。我将mtcars数据帧转换为数据。表如下:

dt<- as.data.table(mtcars,keep.rownames=T)
现在我只想将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加在一起),它就给出了这个输出。 任何帮助都将不胜感激。
谢谢。

您需要传递一个值向量:
dt[(c(4,6))]
。这实际上解决了它!!我在做dt[c(4,6)]和dt[(4,6)]。谢谢你的帮助。非常感谢。您需要传递一个值向量:
dt[(c(4,6))]
。这实际上解决了它!!我在做dt[c(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