开发者

R: randomize order of one column of a data.frame

开发者 https://www.devze.com 2023-03-09 21:24 出处:网络
I have a dataframe like this: df1 <- data.frame(A=c(\"xx\", \"be\", \"zz\", \"jj\"), B=c(\"xyx\", \"bea\", \"cce\", \"ggg\"), C=c(\"ges\", \"xyz\", \"cce\", \"edga\"))

I have a dataframe like this:

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

I want to generate TWO random dataframe based on df1. For each of the random dataframe, I expect the column A and开发者_如何转开发 column B remains the same. But only the order of column C can be altered.

Can I do it with R? If yes, could you teach me how to do so?

Thanks a lot.


When creating a new data-frame based on an existing one, the usual paradigm in R is to use transform. In your case you can simply do:

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


You could do something like:

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

Thus, creating a new data frame where A and B are old data frame's A and B and C is a random permutation of old data frame's column C by using a sample command. Of course, you would assign this new data frame a variable, like df2 and df3.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号