Dear all,

I just updated my data.table package from 1.4 to 1.5 yesterday. Ran
into a small problem that has been solved. Just want to report it
since I don't quite understand it.

> DT[eval(parse(text = criteria))]

This command is working in 1.4, but not everywhere in 1.5. It show
this error message when called within a function.

Error in `[.data.table`(Data, eval(parse(text = criteria))) :
  i has not evaluated to logical, integer or double

However, it works in global environment? My solution for a function
call is, again, wrap it with {}. Therefore,

> DT[ { eval(parse(text = criteria)) } ]

solved my new problem.

It didn't behave like this in 1.4. I guess this is because of the
favor Matthew did for me for the DT[ { CJ } ] bug. If nothing can be
perfect, I pretty much like the current setup. There wasn't many
eval(), but there are lots of CJ/J in my codes.

Just thought you will be interested. Thank you very much for your
efforts and great work.

Best regards,
_______________________________________________
datatable-help mailing list
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help

Reply via email to