使用`data.table`包在R中使用键的子集数据

时间:2014-04-14 03:38:26

标签: r data.table subset

我有以下数据表tb1

persid    date        rating
10000     1/1/2014    A
10000     1/2/2014    B
10001     1/1/2014    A
10001     1/2/2014    B
10002     1/1/2014    A
10002     1/2/2014    B
 .          .         .
 .          .         .
 .          .         .

我使用命令<{p>>将persid设置为键

setkey[tb1, persid]

但是当我运行命令时:

tb1['10000']

它给我一个错误信息:

Error in `[.data.table`(prhistory, "10000") : typeof x.persid (integer) != typeof i.persid (character)

但是如果我删除引号,即只是tb1[10000],那么它会给我第1000行的值。

那么如何使用此数据表中的整数键进行子集?

我正在使用包data.table

由于

1 个答案:

答案 0 :(得分:4)

其中任何一个都可以使用

setkey(tb1,persid)
tb1[J(10000)]
#    persid     date rating
# 1:  10000 1/1/2014      A
# 2:  10000 1/2/2014      B
tb1[persid==10000]
#    persid     date rating
# 1:  10000 1/1/2014      A
# 2:  10000 1/2/2014      B