小编hal*_*vig的帖子

如何在执行以下操作时更改目标列的类型:=在R中的data.table中的组?

我正在尝试:= group by一个类型为'integer'的现有列,其中新值的类型为'double',但失败了.

我的场景是根据其他列中的值将表示时间的列变为POSIXct.我可以修改data.table的创建作为一种解决方法,但我仍然对如何实际更改列的类型感兴趣,正如错误消息中所建议的那样.

这是我的问题的简单玩具示例:

db = data.table(id=rep(1:2, each=5), x=1:10, y=runif(10))
db
id  x          y
 1:  1  1 0.47154470
 2:  1  2 0.03325867
 3:  1  3 0.56784494
 4:  1  4 0.47936031
 5:  1  5 0.96318208
 6:  2  6 0.83257416
 7:  2  7 0.10659533
 8:  2  8 0.23103810
 9:  2  9 0.02900567
10:  2 10 0.38346531

db[, x:=mean(y), by=id]   

Error in `[.data.table`(db, , `:=`(x, mean(y)), by = id) : 
Type of RHS ('double') must match LHS ('integer'). To check and coerce …
Run Code Online (Sandbox Code Playgroud)

types r data.table

12
推荐指数
1
解决办法
6255
查看次数

标签 统计

data.table ×1

r ×1

types ×1