我在R为我的大学做作业,我需要一些帮助,因为我实际上无法向前推进。
我有一个小宠物的数据表。想象一下,你有一组典型的数据:
Pokemon Type PP Evolution Beat_Ditto
Bulbasaur Sheet 50 1 Null
...
Charmander Fire 54 1 Null
...
Raichu electric 200 2 Null
...
Dragonite Dragon 320 3 Null
...
我希望通过evolution过滤这个数据表,但接下来要做更多其他事情。所以,我做了一句如下的话:
eval(parse(sentence))
句子是
"pokemons[type %in% c('Dragon','psychic') & evolution %in% c(2,3), Beat_Ditto := 1, , Beat_Mewtwo := 0]"
我的问题是,当我执行命令eval(解析(句子))时,R说:
Error in `:=`(Beat_Mewtwo, 1) :
Check that is.data.table(DT) == TRUE. Otherwise, := and `:=`(...) are defined for use in j, once only and in particular ways. See help(":=").
pokemons是一个数据表,数据表与过去一样。那么,有人可以帮助我吗?
由于
答案 0 :(得分:0)
它解决了。对不起,我写的data.table错了。我没有尝试只修改一列。我的原始句子就像
"pokemons[type %in% c('Dragon','psychic') & evolution %in% c(2,3), Beat_Ditto := 1, Beat_Mewtwo := 0]"
这句话没有用,因为我试图用一句话修改两列。在这种情况下,我发现我必须做类似的事情:
"pokemons[type %in% c('Dragon','psychic') & evolution %in% c(2,3), c('Beat_Ditto', 'Beat_Mewtwo') := c(1,0)]"
这句话有效。谢谢你的帮助