【问题标题】:How to shuffle data frame entries in R如何在 R 中打乱数据帧条目
【发布时间】:2022-11-28 18:41:58
【问题描述】:

我有一个尺寸为 24,523x3,468 的数据框,我想打乱这个数据框的条目。例如,我有一个简单的数据框

df <- data.frame(c1=c(1, 1.5, 2, 4), c2=c(1.1, 1.6, 3, 3.2), c3=c(2.1, 2.4, 1.4, 1.7)) 
df_shuffled = transform(df, c2 = sample(c2))

它适用于一列,但我想随机播放所有列或所有行。我试过了

col = colnames(df)
for (i in 1:ncol(df)){
  df2 = transform(df, col[i] = sample(col[i]))
}
df2

它会产生这样的错误

我也试过这个来洗牌,但它只洗牌行和列

df_shuf = df[sample(rownames(df), nrow(df)), sample(colnames(df), ncol(df))]
df_shuf

如何按行和列对 I 使用循环来随机播放数据框 df 的条目?

【问题讨论】:

    标签: r dataframe random shuffle sample


    【解决方案1】:

    unlisted 值上使用 sample。要保留数据框的尺寸,请在 lhs 上使用 [

    df[] <- sample(unlist(df))
    

    【讨论】:

      【解决方案2】:

      解决问题的一种方法:

      df[] = lapply(df, sample)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-16
        • 1970-01-01
        • 1970-01-01
        • 2021-08-01
        • 1970-01-01
        • 2020-12-18
        • 1970-01-01
        • 2019-01-10
        相关资源
        最近更新 更多