I have a list of n elements, each including a data frame. Let's take start_list as an example:
start_list <- list(ENSG0000014 = structure(list(name = c("E-1122O", "E-11EM3",
"E-11EMC", "E-1442O", "E-1132O"), ENSG = c("ENSG0000014", "ENSG0000014",
"ENSG0000014", "ENSG0000014", "ENSG0000014"), expr = c(" 9.940670e-02",
" 1.289670e-01", "-7.394904e-03", " 9.940670e-02", " 9.940670e-02"
), `1_43222779_A_G_b37` = c("1", "1", "2", "1", "0"), `1_43222856_A_G_b37` = c("0",
"0", "0", "1", "1"), `1_43223126_C_T_b37` = c("0", "1", "0",
"1", "2"), `1_43223317_T_C_b37` = c("1", "0", "0", "2", "1")), row.names = c(NA,
-5L), class = c("tbl_df", "tbl", "data.frame")), ENSG0000015 = structure(list(
name = c("E-1122O", "E-11EM3", "E-11EMC", "E-1442O", "E-1132O"
), ENSG = c("ENSG0000015", "ENSG0000015", "ENSG0000015",
"ENSG0000015", "ENSG0000015"), expr = c(" 9.940670e-02",
" 1.289670e-01", "-7.394904e-03", " 9.940670e-02", " 1.289670e-01"
), `1_43222779_A_G_b37` = c("0", "1", "0", "1", "2"),
`1_43222856_A_G_b37` = c("1", "1", "2", "1", "0")),
row.names = c(NA, -5L), class = c("tbl_df",
"tbl", "data.frame")))
Also, there is a data frame named set_id which contains a list of individuals from name column of start_list that are categorized in five sets of TRUE/FALSE characters:
set_id <- structure(list(IID = c("E-1122O", "E-11EM3", "E-11EMC", "E-1442O",
"E-1132O"), set_1 = c(TRUE, FALSE, TRUE, TRUE, TRUE), set_2 = c(TRUE,
TRUE, FALSE, FALSE, TRUE), set_3 = c(FALSE, TRUE, TRUE, FALSE,
TRUE), set_4 = c(TRUE, FALSE, TRUE, TRUE, FALSE), set_5 = c(TRUE,
FALSE, FALSE, TRUE, TRUE)), row.names = c(NA, -5L), class = "data.frame")
I need to filter the start_list based on these groups of individuals to keep those IID if is equal to 'FALSE' and also remove the second and third columns of start_list, ENSG, expr and create a new list, 'list_prime_out':
list_prime_out <- list(ENSG0000014 = list(set_1 = structure(list(name = "E-11EM3",
`1_43222779_A_G_b37` = "1", `1_43222856_A_G_b37` = "0", `1_43223126_C_T_b37` = "0",
`1_43223317_T_C_b37` = "1"), row.names = c(NA, -1L), class = c("tbl_df",
"tbl", "data.frame")), set_2 = structure(list(name = c("E-11EMC",
"E-14420"), `1_43222779_A_G_b37` = c("1", "0"), `1_43222856_A_G_b37` = c("1",
"1"), `1_43223126_C_T_b37` = c("2", "0"), `1_43223317_T_C_b37` = c("2",
"0")), row.names = c(NA, -2L), class = c("tbl_df", "tbl", "data.frame"
)), set_3 = structure(list(name = c("E-1122O", "E-1442O"), `1_43222779_A_G_b37` = "1",
`1_43222856_A_G_b37` = "0", `1_43223126_C_T_b37` = c("1",
"1"), `1_43223317_T_C_b37` = c("1", "2")), row.names = c(NA,
-2L), class = c("tbl_df", "tbl", "data.frame")), set_4 = structure(list(
name = c("E-11EM3", "E-1132O"), `1_43222779_A_G_b37` = c("1",
"0"), `1_43222856_A_G_b37` = c("1", "1"), `1_43223126_C_T_b37` = c("0",
"0"), `1_43223317_T_C_b37` = c("0", "0")), row.names = c(NA,
-2L), class = c("tbl_df", "tbl", "data.frame")), set_5 = structure(list(
name = c("E-11EM3", "E-11EMC"), `1_43222779_A_G_b37` = c("1",
"0"), `1_43222856_A_G_b37` = c("1", "1"), `1_43223126_C_T_b37` = c("2",
"0"), `1_43223317_T_C_b37` = c("1", "2")), row.names = c(NA,
-2L), class = c("tbl_df", "tbl", "data.frame"))), ENSG0000015 = list(
set_1 = structure(list(name = "E-11EM3", `1_43222779_A_G_b37` = "1",
`1_43222856_A_G_b37` = "0", `1_43223126_C_T_b37` = "0",
`1_43223317_T_C_b37` = "1"), row.names = c(NA, -1L), class = c("tbl_df",
"tbl", "data.frame")), set_2 = structure(list(name = c("E-11EMC",
"E-14420"), `1_43222779_A_G_b37` = c("1", "0"), `1_43222856_A_G_b37` = c("1",
"1"), `1_43223126_C_T_b37` = c("2", "0"), `1_43223317_T_C_b37` = c("2",
"0")), row.names = c(NA, -2L), class = c("tbl_df", "tbl",
"data.frame")), set_3 = structure(list(name = c("E-1122O",
"E-1442O"), `1_43222779_A_G_b37` = "1", `1_43222856_A_G_b37` = "0",
`1_43223126_C_T_b37` = c("1", "1"), `1_43223317_T_C_b37` = c("1",
"2")), row.names = c(NA, -2L), class = c("tbl_df", "tbl",
"data.frame")), set_4 = structure(list(name = c("E-11EM3",
"E-1132O"), `1_43222779_A_G_b37` = c("1", "0"), `1_43222856_A_G_b37` = c("1",
"1"), `1_43223126_C_T_b37` = c("0", "0"), `1_43223317_T_C_b37` = c("0",
"0")), row.names = c(NA, -2L), class = c("tbl_df", "tbl",
"data.frame")), set_5 = structure(list(name = c("E-11EM3",
"E-11EMC"), `1_43222779_A_G_b37` = c("1", "0"), `1_43222856_A_G_b37` = c("1",
"1"), `1_43223126_C_T_b37` = c("2", "0"), `1_43223317_T_C_b37` = c("1",
"2")), row.names = c(NA, -2L), class = c("tbl_df", "tbl",
"data.frame"))))
str(list_prime_out)
List of 2
$ ENSG0000014:List of 5
..$ set_1: tibble [1 × 5] (S3: tbl_df/tbl/data.frame)
.. ..$ name : chr "E-11EM3"
.. ..$ 1_43222779_A_G_b37: chr "1"
.. ..$ 1_43222856_A_G_b37: chr "0"
.. ..$ 1_43223126_C_T_b37: chr "0"
.. ..$ 1_43223317_T_C_b37: chr "1"
..$ set_2: tibble [2 × 5] (S3: tbl_df/tbl/data.frame)
.. ..$ name : chr [1:2] "E-11EMC" "E-14420"
.. ..$ 1_43222779_A_G_b37: chr [1:2] "1" "0"
.. ..$ 1_43222856_A_G_b37: chr [1:2] "1" "1"
.. ..$ 1_43223126_C_T_b37: chr [1:2] "2" "0"
.. ..$ 1_43223317_T_C_b37: chr [1:2] "2" "0"
..$ set_3: tibble [2 × 5] (S3: tbl_df/tbl/data.frame)
.. ..$ name : chr [1:2] "E-1122O" "E-1442O"
.. ..$ 1_43222779_A_G_b37: chr "1"
.. ..$ 1_43222856_A_G_b37: chr "0"
.. ..$ 1_43223126_C_T_b37: chr [1:2] "1" "1"
.. ..$ 1_43223317_T_C_b37: chr [1:2] "1" "2"
..$ set_4: tibble [2 × 5] (S3: tbl_df/tbl/data.frame)
.. ..$ name : chr [1:2] "E-11EM3" "E-1132O"
.. ..$ 1_43222779_A_G_b37: chr [1:2] "1" "0"
.. ..$ 1_43222856_A_G_b37: chr [1:2] "1" "1"
.. ..$ 1_43223126_C_T_b37: chr [1:2] "0" "0"
.. ..$ 1_43223317_T_C_b37: chr [1:2] "0" "0"
..$ set_5: tibble [2 × 5] (S3: tbl_df/tbl/data.frame)
.. ..$ name : chr [1:2] "E-11EM3" "E-11EMC"
.. ..$ 1_43222779_A_G_b37: chr [1:2] "1" "0"
.. ..$ 1_43222856_A_G_b37: chr [1:2] "1" "1"
.. ..$ 1_43223126_C_T_b37: chr [1:2] "2" "0"
.. ..$ 1_43223317_T_C_b37: chr [1:2] "1" "2"
$ ENSG0000015:List of 5
..$ set_1: tibble [1 × 5] (S3: tbl_df/tbl/data.frame)
.. ..$ name : chr "E-11EM3"
.. ..$ 1_43222779_A_G_b37: chr "1"
.. ..$ 1_43222856_A_G_b37: chr "0"
.. ..$ 1_43223126_C_T_b37: chr "0"
.. ..$ 1_43223317_T_C_b37: chr "1"
..$ set_2: tibble [2 × 5] (S3: tbl_df/tbl/data.frame)
.. ..$ name : chr [1:2] "E-11EMC" "E-14420"
.. ..$ 1_43222779_A_G_b37: chr [1:2] "1" "0"
.. ..$ 1_43222856_A_G_b37: chr [1:2] "1" "1"
.. ..$ 1_43223126_C_T_b37: chr [1:2] "2" "0"
.. ..$ 1_43223317_T_C_b37: chr [1:2] "2" "0"
..$ set_3: tibble [2 × 5] (S3: tbl_df/tbl/data.frame)
.. ..$ name : chr [1:2] "E-1122O" "E-1442O"
.. ..$ 1_43222779_A_G_b37: chr "1"
.. ..$ 1_43222856_A_G_b37: chr "0"
.. ..$ 1_43223126_C_T_b37: chr [1:2] "1" "1"
.. ..$ 1_43223317_T_C_b37: chr [1:2] "1" "2"
..$ set_4: tibble [2 × 5] (S3: tbl_df/tbl/data.frame)
.. ..$ name : chr [1:2] "E-11EM3" "E-1132O"
.. ..$ 1_43222779_A_G_b37: chr [1:2] "1" "0"
.. ..$ 1_43222856_A_G_b37: chr [1:2] "1" "1"
.. ..$ 1_43223126_C_T_b37: chr [1:2] "0" "0"
.. ..$ 1_43223317_T_C_b37: chr [1:2] "0" "0"
..$ set_5: tibble [2 × 5] (S3: tbl_df/tbl/data.frame)
.. ..$ name : chr [1:2] "E-11EM3" "E-11EMC"
.. ..$ 1_43222779_A_G_b37: chr [1:2] "1" "0"
.. ..$ 1_43222856_A_G_b37: chr [1:2] "1" "1"
.. ..$ 1_43223126_C_T_b37: chr [1:2] "2" "0"
.. ..$ 1_43223317_T_C_b37: chr [1:2] "1" "2"
I'd appreciate your help.