mardi 7 août 2018

R: Random values from one column in 5 columns

I have a dataframe (df) containing 100 soccer player numbers: df <- data.frame(player_number =c(1:100))

Each player should review 5 other players, therefore I would like to randomly assign 5 different player numbers to each player_number. To prevent assigning reviews to themselves and/or players having to review the same player twice (or more), each player_number should only occur once in every column and in every row. The dataframe should look like this:

player_number  review1  review2  review3  review4  review5
1               20        31       44       60        80
2               94        21       3        17        8     
…
100             80        18       96       43        1

For review1 column, I have used: set.seed(1) df$review1 <- sample(df$player_number, nrow(df), replace=F)

This works for review1, but applying it to the other review columns leads to duplicate player_number in several rows. Can anyone help me out so each player_number only occurs once in every column and in every row? Thanks in advance.




Aucun commentaire:

Enregistrer un commentaire