/ / क्या R में एक चरण में किसी सूची को डुप्लिकेट और संशोधित करना संभव है? - आर, सूची

क्या आर में एक चरण में एक सूची को डुप्लिकेट करना और संशोधित करना संभव है? - आर, सूची

मैं खुद को बहुत कुछ करते हुए पाता हूं:

my_list <- list(a = list(b = "something"), c = 3, d = "a lot of other options")

my_list_2 <- my_list
my_list_2$a$b <- "something_else"
my_list_2$c <- 5

मैं सोच रहा था कि क्या इसके लिए कोई शॉर्टहैंड है। कुछ इस तरह:

my_list_2 <- xxxxx(my_list, list(a = list(b = "something_else"), c = 5))

अद्यतन करें: मेरा इच्छित आउटपुट है:

my_list # unchanged
my_list_2 # list(a = list(b = "something_else"), c = 5, d = "a lot of other options")

उत्तर:

जवाब के लिए 3 № 1

एक विकल्प का उपयोग करना है ?within:

within(my_list, {a$b = "something_else"; c = 5})
#$a
#$a$b
#[1] "something_else"
#
#
#$c
#[1] 5
#
#$d
#[1] "a lot of other options"

बेशक एक नई वस्तु को परिणाम निर्दिष्ट करके उसी चरण में दोहराव संभव है, उदा।

my_list2 <- within(my_list, {a$b = "something_else"; c = 5})

जवाब के लिए 4 № 2

संशोधित सूची बिल्कुल वैसा ही है जैसा प्रश्न xxxx के लिए दिखाता है:

new_list <- modifyList(my_list, list(a = list(b = "something_else"), c = 5))