I have a dataframe that looks something like this:
P1 <- c('P1 -> (Normal,_)', 'P1 -> (Normal,_)', 'NA', 'P5 -> (UP,_)')
P2 <- c('P4 -> (UP,_)', 'NA', 'P2 -> (UP,_)', 'P4 -> (UP,_)')
P3 <- c('P2 -> (UP,_)', 'P3 -> (UP,_)', 'P1 -> (UP,_)', 'P2 -> (UP,_)')
P4 <- c('NA', 'P4 -> (UP,_)', 'P3 -> (UP,_)', 'P3 -> (UP,_)')
P5 <- c('P3 -> (UP,_)', 'NA', 'NA', 'NA')
df <- data.frame(P1, P2, P3, P4, P5)
I need it to be ordered in a way that P1 column contains only P1 values, P2 column - P2 values, etc. If there is no value for that column, it should contain 'NA'.

