【问题标题】:na.omit in data.table, R [closed]data.table 中的 na.omit,R [关闭]
【发布时间】:2012-10-22 18:34:21
【问题描述】:

这可能是一个潜在的错误,我在使用独立示例重现它时遇到了困难,但是,错误消息可能有助于深入了解它。 mivdata.table

> str(miv)
Classes ‘data.table’ and 'data.frame':  113534 obs. of  21 variables:
 $ ym            : num  1980 1980 1980 1980 1980 ...
 $ dte           : Date, format: "1980-03-31" "1980-03-31" ...
 $ xs_ret        : num  -16.3 -16.3 -16.3 14.3 14.3 ...
 $ xs_mkt        : num  -8.85 -8.85 -8.85 12.77 12.77 ...
 $ smb           : num  -7.23 -7.23 -7.23 3.62 3.62 ...
 $ hml           : num  0.966 0.966 0.966 0.318 0.318 ...
 $ umd           : num  3.713 3.713 3.713 -0.762 -0.762 ...
 $ wficn         : num  100567 101394 102565 100010 100019 ...
 $ iv_w          : num [1:113534, 1] -1.039 -0.571 -0.831 -0.357 -0.263 ...

> miv <- na.omit(miv)
Error in `[.data.table`(object, !omit) : 
   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.

【问题讨论】:

  • 您能否至少展示一下您是如何创建iv_w 列的?
  • 不幸的是,创建该列的代码大约有 100 行

标签: r data.table na


【解决方案1】:

如果不能重现,那就是太本地化了:

DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)
DT[3, 2] <- NA
DT[4, 3] <- NA
DT
#   x  y  v
#1: a  1  1
#2: a  3  2
#3: a NA  3
#4: b  1 NA
#5: b  3  5
#6: b  6  6
#7: c  1  7
#8: c  3  8
#9: c  6  9
na.omit(DT)
#   x y v
#1: a 1 1
#2: a 3 2
#3: b 3 5
#4: b 6 6
#5: c 1 7
#6: c 3 8
#7: c 6 9

【讨论】:

  • 是的,我自己也做过。但是,我已经遇到过好几次了,所以想看看其他人是否遇到过这个
  • 这就是datatable-help列表的作用
  • 很高兴将其发送到列表中。
  • 我认为这是解决此类特定问题的更好地方。当你这样做时,如果你能提供更多关于你如何创建该列的颜色,我认为这会有所帮助。
  • 即使dput(head(miv)) 也会有所帮助
猜你喜欢
  • 1970-01-01
  • 2017-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多