I've created an r list which comprises of the Class and Results information.
How do I divide this list into two, r0 and r1, depending on the Class value?
> print(r)
Class Results
1 1 JHU_113_2.CEL
2 0 JHU_144.CEL
3 1 JHU_173.CEL
4 1 JHU_176R.CEL
5 1 JHU_182.CEL
6 0 JHU_186.CEL
7 1 JHU_187.CEL
8 1 JHU_188.CEL
9 1 JHU_203.CEL
10 0 JHU_205.CEL
11 1 JHU_207.CEL
12 0 JHU_210.CEL
13 0 JHU_211R3.CEL
14 0 JHU_214.CEL
15 0 JHU_215.CEL
16 1 JHU_220.CEL
17 1 JHU_221.CEL
18 0 JHU_222.CEL
19 0 JHU_229.CEL
20 0 JHU_231.CEL
21 0 JHU_80.CEL
22 0 JHU_88.CEL
23 0 JHU_95.CEL
24 0 JHU_016.CEL
25 0 JHU_046.CEL
26 1 JHU_096.CEL
CodePudding user response:
You can use group_split in dplyr
Class Results
1 1 JHU_113_2.CEL
2 0 JHU_144.CEL
3 1 JHU_173.CEL
4 1 JHU_176R.CEL
5 1 JHU_182.CEL
6 0 JHU_186.CEL
library(dplyr)
r %>% group_split(.,Class)
<list_of<
tbl_df<
Class : double
Results: character
>
>[2]>
[[1]]
# A tibble: 2 x 2
Class Results
<dbl> <chr>
1 0 JHU_144.CEL
2 0 JHU_186.CEL
[[2]]
# A tibble: 4 x 2
Class Results
<dbl> <chr>
1 1 JHU_113_2.CEL
2 1 JHU_173.CEL
3 1 JHU_176R.CEL
4 1 JHU_182.CEL
This will create two lists which can be accessed using square brackets. I.e. if you stored it under the name classes you could get the results of class 0 using classes[[1]]
