【问题标题】:R: randomize order of one column of a data.frameR:随机化 data.frame 一列的顺序
【发布时间】:2011-09-05 05:05:00
【问题描述】:

我有一个这样的数据框:

df1 <- data.frame(A=c("xx", "be", "zz", "jj"), B=c("xyx", "bea", "cce", "ggg"), C=c("ges", "xyz", "cce", "edga"))

我想基于 df1 生成两个随机数据帧。对于每个随机数据框,我希望 A 列和 B 列保持不变。但只能更改 C 列的顺序。

我可以用 R 来做吗?如果是的话,你能教我怎么做吗?

非常感谢。

【问题讨论】:

    标签: r random dataframe


    【解决方案1】:

    在基于现有数据框创建新数据框时,R 中的常用范例是使用transform。在你的情况下,你可以简单地做:

    df2 <- transform( df1, C = sample(C) )
    

    【讨论】:

    • 非常优雅!不知道变身。值得一票:)
    • 太棒了!喜欢它!
    【解决方案2】:

    你可以这样做:

    data.frame(A=df1$A, B=df1$B, C=sample(df1$C))
    

    因此,使用sample 命令创建一个新数据框,其中 A 和 B 是旧数据框的 A 和 B,C 是旧数据框的 C 列的随机排列。当然,您可以为这个新数据框分配一个变量,例如 df2 和 df3。

    【讨论】:

      猜你喜欢
      • 2012-02-17
      • 2019-08-17
      • 1970-01-01
      • 1970-01-01
      • 2016-01-24
      • 2023-03-14
      • 1970-01-01
      • 2012-07-09
      • 2019-04-04
      相关资源
      最近更新 更多