gpt4 book ai didi

R随机化和随机化数据表的列

转载 作者:行者123 更新时间:2023-12-03 16:20:22 24 4
gpt4 key购买 nike

给定一个 data.table如:

data.table::data.table(a = c(1,2,3), b = c("red","blue","yellow"), c = c(TRUE, FALSE, TRUE), d = c(21, 45, 34, 26))

a b c d
1: 1 red TRUE 21
2: 2 blue FALSE 45
3: 3 yellow TRUE 34
4: 4 green FALSE 26
在哪里 a是唯一的行标识符,我如何随机化/匿名化数据,以便列在自己的列中随机排列。这将创建一个随机的 data.table看起来像:
   a      b     c  d
1: 1 green TRUE 26
2: 2 yellow FALSE 45
3: 3 red FALSE 21
4: 4 blue TRUE 34

最佳答案

如果每列不与行绑定(bind)是随机的,则使用 sample.SDcols 中指定的列上通过在 lapply 中循环它们并将(:=)输出分配回列

dt1[, (2:4) := lapply(.SD, sample), .SDcols = 2:4]
-输出
dt1
# a b c d
#1: 1 blue FALSE 34
#2: 2 red TRUE 21
#3: 3 green FALSE 45
#4: 4 yellow TRUE 26

或者另一个选项是 set
for(j in names(dt1)[-1]) {
set(dt1, i = NULL, j = j, value = sample(dt1[[j]]))
}
数据
dt1 <- data.table::data.table(
a = c(1,2,3, 4),
b = c("red","blue","yellow", "green"),
c = c(TRUE, FALSE, TRUE, FALSE),
d = c(21, 45, 34, 26)
)

关于R随机化和随机化数据表的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63974176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com