我有一个名称的数据框。而且我有不同食物的载体。我想为每个Name从该向量中随机选择一个元素,以便data.table如下所示。
x<- c("apple","pepsi","rice","coke","banana","butter","bread")
library(data.table)
dt <- fread('
Name NextItem
John rice
Logan butter
Sarah bread
Vinny rice
')
我想更换样品。我试过了
dt[,NextItem:= sample(x,1)]
但是它为每个人都采样了相同的食物(矢量元素),而不是像上述示例那样的不同随机元素。
我们可以按选项使用分组,然后执行 sample
dt[, NextItem := sample(x, 1), by = Name]
或者您也可以使用.N
代替by
dt[, NextItem := sample(x, .N, replace = TRUE)]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句