1

我有一个包含多行和 3 列的数据集。第一列race0s、1s 和NAs 填充。我试图拉出与0s 相对应的行,同时也忽略任何NAs。

我的代码:

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.
4

2 回答 2

1

看起来您可以通过使用以下方法来节省一些步骤(并获得相当大的速度):

  setkey(dt, "race")
  dt[!is.na(race)][.(0)]
于 2013-03-03T00:13:36.923 回答
0

尝试这个:

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

na.omit函数将在排除任何包含NA.

于 2013-03-03T00:15:49.857 回答