来自 data.frame 每一列的随机样本

标签 r statistics sample

我想从 data.frame 的每一行独立于其他行抽取随机样本。这是一个例子。此代码为每一行选择相同的列,但我需要为每一行独立选择列。

library(plyr)
set.seed(12345)
df1 <- mdply(data.frame(mean=c(10, 15)), rnorm, n = 5, sd = 1)
df1
  mean       V1       V2        V3        V4       V5
1   10 10.58553 10.70947  9.890697  9.546503 10.60589
2   15 13.18204 15.63010 14.723816 14.715840 14.08068
> df1[ , -1]
        V1       V2        V3        V4       V5
1 10.58553 10.70947  9.890697  9.546503 10.60589
2 13.18204 15.63010 14.723816 14.715840 14.08068
> sample(df1[, -1], replace = TRUE)
         V3       V2       V5        V4      V4.1
1  9.890697 10.70947 10.60589  9.546503  9.546503
2 14.723816 15.63010 14.08068 14.715840 14.715840
> t(apply(df1[, -1], 1, sample))
         [,1]      [,2]     [,3]     [,4]      [,5]
[1,] 10.70947  9.890697 10.60589 10.58553  9.546503
[2,] 14.71584 13.182044 14.08068 15.63010 14.723816

已编辑

df1[ , -1]
            V1       V2        V3        V4       V5
    1 10.58553 10.70947  9.890697  9.546503 10.60589
    2 13.18204 15.63010 14.723816 14.715840 14.08068

sample(df1[, -1], replace = TRUE)
             V3       V2       V5        V4      V4.1
    1  9.890697 10.70947 10.60589  9.546503  9.546503
    2 14.723816 15.63010 14.08068 14.715840 14.715840

sample(df1[, -1], replace = TRUE) 选择列 V3, V2, V5V4V4。但我要求它可以选择列 V3V2V5V4V4 用于第一行 和/或五列的任意组合用于第二行

最佳答案

您可以将 applyreplace=TRUE 一起用于 sample

 t(apply(df1[,-1], 1, sample, replace=TRUE))

关于来自 data.frame 每一列的随机样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31646131/

相关文章:

r - 使用动态列名和动态值的 Dplyr 过滤器

python - 为什么即使协方差是半正定的,bivariate_normal 也会返回 NaN?

sql - 对于列中的每个唯一值,从另一列中抽取 2 个不同的值

objective-c - 64 位 Quicktime 问题

r - 在 R Shiny 中使用 SweetAlert2

r - 传单簇标记间距,或缩小时如何拥有更小的组

r - 从 R 中的向量创建多个随机样本的 data.frame?

c++ - 'CreateDirectoryW' : cannot convert parameter 1 from 'const char *' to 'LPCWSTR' in OpenCV 2. 4.5 和 VS 2010

r - 当我尝试 cbind 时,zoo 对象只是插入了随机行。发生了什么?

statistics - Tableau、散点图和趋势线显示置信水平