Home > Software engineering >  Separate columns into 2
Separate columns into 2

Time:12-16

I have a df with a column:

Column A
100_1-A-C-F/G
200_2-B-D-G/F

100_1 is the sample numbers where A/B is the different drug C/D is the different method F/G OR G/F is the different technique

How do I separate the column to look like:

Column A Column B
100_1 A-C-F/G
200_2 B-D-G/F

Thanks

I use separate function and I selected (sep = "_") however, this still includes the sample number:

Column A Column B
100 1-A-C-F/G
200 2-B-D-G/F

CodePudding user response:

You can use separate, but you need to use a regular expression in sep:

df %>% 
  separate(`Column A`, into = c("Column A", "Column B"), sep="(?<=\\d)-")

Output:

# A tibble: 2 × 2
  `Column A` `Column B`
  <chr>      <chr>     
1 100_1      A-C-F/G   
2 200_2      B-D-G/F 

Input

df = tibble(
  "Column A" = c("100_1-A-C-F/G", "200_2-B-D-G/F")
)

CodePudding user response:

We could use sub() here for a base R option:

df$B <- sub(".*?-(.*?)", "\\1", df$A)
df$A <- sub("-.*", "", df$A)
df

      A       B
1 100_1 A-C-F/G
2 200_2 B-D-G/F
  • Related