在data.table中创建一个包含函数返回结果的列

时间:2014-06-09 20:37:24

标签: r data.table

我正在尝试创建一个随机整数的列,该整数介于1和不同列的唯一值的长度之间。

换句话说,它是一种从列可能存在的所有唯一值的样本中随机重新分配每行类别的方法。

这就是我所拥有的。不幸的是,它完全归还了我所投入的内容。

randomBinAssigner <- function(testingDT) {
  levelsInCat <- levels(testingDT$randomCat)
  testingDT[, randomCatKey := sample(1:length(levelsInCat), 1, replace = T)]
  testingDT[, randomCat := levelsInCat[randomCatKey]]
  testingDT[, randomCatKey := NULL]
  return(testingDT)
}

1 个答案:

答案 0 :(得分:2)

OP中没有可重复的示例,具有明确的期望输出,但我猜你只是错过了#34;&#34;:

testingDT[, randomCatKey := sample(length(levelsInCat), 1, T), by = randomCat]