使用subselect的问题

时间:2013-03-02 23:39:35

标签: r data.table

我有一个包含多行和三列的数据集。第一列race填充了0 s,1NA s。我试图提取与0对应的行,同时忽略任何NA

我的代码:

dt = data.table(cbind((data[,'race']), (data[,'age']), (data[,'sex'])))
data = dt[complete.cases(dt), ] #remove the NAs
subset(data,race == 0)

我一直收到这个错误,我不确定它是什么意思:

Error in `[.data.table`(x, r, vars, with = FALSE) : 
  i is invalid type (matrix). Perhaps in future a 2 column matrix could 
  return a list of elements of DT (in the spirit of A[B] in FAQ 2.14). 
  Please let datatable-help know if you'd like this, or add your 
  comments to FR #1611.

2 个答案:

答案 0 :(得分:1)

看起来你可以通过使用类似的东西来节省一些步骤(并获得相当快的速度):

  setkey(dt, "race")
  dt[!is.na(race)][.(0)]

答案 1 :(得分:0)

试试这个:

na.omit(dt)[race==0]

na.omit函数将在排除包含NA的任何行后返回数据表。