Я работаю в R, пытаясь извлечь вектор чисел из структуры данных списка. Вот небольшой воспроизводимый пример, который отражает структуру гораздо большего набора данных.
# Create a reproducible example multi-level list structure
mylist <- list()
mylist$`1` <- c("barcodes","data")
mylist$`2` <- c("barcodes","data")
mylist$`3` <- c("barcodes","data")
mylist$`1`$barcodes <- c(1:50)
mylist$`2`$barcodes <- c(50:200)
mylist$`3`$barcodes <- c(1:200)
Я могу успешно сгенерировать нужные мне данные, которые называются numbers
, используя следующую команду. Однако это требует жесткого кодирования каждого интересующего набора данных, который не идеален.
numbers <- c(mylist$`1`$barcodes[1:5],
mylist$`3`$barcodes[1:5])
#This does achieve the desired result
#> numbers
#[1] 1 2 3 4 5 1 2 3 4 5
Я пытаюсь сделать это с высокой пропускной способностью без жесткого кодирования. Ниже моя попытка.
nums_of_interest <- c(1,3)
numbers <- c(gsub(" ", "", paste("mylist$'",nums_of_interest,"'$barcodes[1:5]")))
# This does not achieve the desired result
#> numbers
#[1] "mylist$'1'$barcodes[1:5]" "mylist$'3'$barcodes[1:5]"
Я пытаюсь найти способ извлечь интересующие числа 1 2 3 4 5 1 2 3 4 5
, представляющие интерес, с высокой пропускной способностью.