【发布时间】:2016-01-29 23:09:35
【问题描述】:
我在 R 中使用 data.table 包并希望对列执行操作。具体来说,我想强制所有值都是 (0, 1)。
让我们在这里举一个简单的例子:
data = data.table(x = rnorm(10))
我的数据存储为data.table,所以我想我可以这样做:
data[, newx := max(min(x, 1), 0)]
但是聚合函数(min 和 max)计算向量的最小值/最大值。
好的,所以我进行更改并添加 by=.I 声明:
data[, newx := max(min(x, 1), 0), by=.I]
但这也不起作用!
使用data.table完成此类任务的正确方法是什么?
【问题讨论】:
-
可以使用
by = seq_along(x)
标签: r data.table