R:随机化data.frame的一列的顺序

时间:2011-05-31 05:17:38

标签: r random dataframe

我有一个这样的数据框:

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做吗?如果是的话,你能教我怎么做吗?

非常感谢。

2 个答案:

答案 0 :(得分:15)

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

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

答案 1 :(得分:3)

您可以执行以下操作:

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

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