Home > Enterprise >  How do I regroup data?
How do I regroup data?

Time:01-30

I am looking to change the structure of my dataframe, but I am not really sure how to do it. I am not even sure how to word the question either.

ID <- c(1,8,6,2,4)    
a <- c(111,94,85,76,72)    
b <- c(75,37,86,55,62)    
dataframe <- data.frame(ID,a,b)

   ID  a  b
1  1 111 75
2  8  94 37
3  6  85 86
4  2  76 55
5  4  72 62

Above is the code with the output, however, I want the output to look like the following; however, the only way I know how to do this is to just type it manually, is there any other way other than changing the input manually? Because I have quite a large data set that I would like to change and manually would just take forever.

   ID letter value
1   1      a   111
2   1      b    75
3   8      a    94
4   8      b    37
5   6      a    85
6   6      b    86
7   2      a    76
8   2      b    55
9   4      a    72
10  4      b    62

CodePudding user response:

We may use pivot_longer

library(dplyr)
library(tidyr)
dataframe %>% 
   pivot_longer(cols = a:b, names_to = 'letter')

-output

# A tibble: 10 × 3
      ID letter value
   <dbl> <chr>  <dbl>
 1     1 a        111
 2     1 b         75
 3     8 a         94
 4     8 b         37
 5     6 a         85
 6     6 b         86
 7     2 a         76
 8     2 b         55
 9     4 a         72
10     4 b         62
  •  Tags:  
  • Related