【发布时间】:2017-03-02 15:48:49
【问题描述】:
我在 data.table 列上有一组非负整数值和一个需要减去的值 (n)。
如果n 的值例如为 34,则从 data.table 列中的所有值中减去的总数需要为 34(即不是从每个值中减去 34)。
但是有一些限制。如果存在 0 值,则该值必须保持为 0,如果任何值大于 0,则它不能低于 1。最后,我希望减法是随机的,所以(如果在数学上可能)我没有得到每次结果都一样。
这里是一些示例数据:
library(data.table)
n = 34
dt1 <- data.table(SIZE = c(12,0,28,3,42,57))
以下是两个输出示例,基于样本数据,符合我的标准:
s1 <- data.table(SIZE = c(1,0,18,1,40,48))
s2 <- data.table(SIZE = c(2,0,24,3,42,37))
【问题讨论】:
-
这是不明确的。如果一个条目是 0.5 怎么办?那是大于零小于一,所以你要raise它?如果您的标准不可行,您会怎么做?如果所有数字都是非负整数,那就可以了,但您需要指定...
-
@Frank 对不起。我的场景中的数字都是非负整数。我已经澄清了这个问题,以防有人在未来寻找类似问题的解决方案。此外,在我的场景中,如果操作不可行,那么它会在进入需要您的解决方案的阶段之前被跳过。
标签: r data.table