R 按列随机化数据表,而不丢失属性或更改类型

R 按列随机化数据表,而不丢失属性或更改类型,r,attributes,sample,R,Attributes,Sample,我的目标是按列随机化datatable中的值序列,而不丢失与每列关联的属性。每一列应独立于其他列进行随机化。因此,数据集如下所示: 身份证件 高度 重量 A. 54 120 B 48 200 C 32 250 而不是使用apply(它转换为matrix,并且matrix只能有一个类)。使用lappy newdat <- copy(dat) newdat[] <- lapply(newdat, sample) 或者另一个快速选项是dapplyfromcollapse(它保留类型和属

我的目标是按列随机化datatable中的值序列,而不丢失与每列关联的属性。每一列应独立于其他列进行随机化。因此,数据集如下所示:

身份证件 高度 重量 A. 54 120 B 48 200 C 32 250
而不是使用
apply
(它转换为
matrix
,并且matrix只能有一个类)。使用
lappy

newdat <- copy(dat)
newdat[] <- lapply(newdat, sample)

或者另一个快速选项是
dapply
from
collapse
(它保留类型和属性)

库(折叠)

纽达太棒了。首先感谢你给出了一个有效的答案,然后是另一个更好的答案。
str(newdat)
#Classes ‘data.table’ and 'data.frame': 5 obs. of  3 variables:
# $ a: dbl+lbl [1:5] 2, 3, 4, 5, 1
#   ..@ labels: Named num  1 2 3 4 5
#   .. ..- attr(*, "names")= chr [1:5] "First option" "Second option" "Third option" "Fourth option" ...
#   ..@ label : chr "The a variable"
# $ b: chr  "five" "three" "two" "one" ...
# $ c: num  6 10 8 7 9
library(collapse)
newdat <- dapply(newdat, sample)