我將嘗試解釋它的python,如果有人讓我知道如何在R編程中做到這一點將是有幫助的
。INPUT: 我有一個帶有數值串列的dict
INPUT:
my_dict = {
data_point1:[/span>
{
"sample1": "a"/span>
},
{>
"sample2": "b"/span>
}
]
}
現在我想洗掉data_points串列中的sample1 obj,我可以在python中使用pop提供的索引號為0的方法輕松做到這一點
預期輸出:my_dict = {}。
data_point1:[/span>
{
"sample2": "b"
}
]
}
請注意我必須只用索引號來洗掉串列中的元素,因為它是在forloop中動態獲取的。如果有人能幫助我在R編程中實作這個邏輯,那就太好了。提前感謝!!!!
。我在R中的嘗試:
mydict[[data_point]][1] <- NULL。
輸入的R資料結構:
list(data_point = list("sample1" = c(1000。 2)。 "sample2"= c(200。 300)))
這里需要使用索引號從sample1元素中洗掉1000
R資料結構中的預期輸出:list(data_point = list("sample1" = c(2)。 "sample2"= c(200。 300)))
uj5u.com熱心網友回復:
如果我們需要將內部的串列元素分配給NULL,用$或[[
mydict$datapoint$sample1 <- NULL
輸出
>/span> mydict
$data_point
$data_point$sample2
[1] "2"
> dput(mydict)
list(data_point= list(sample2 = "2"))
對于更新的情況,通過對'sample1'的第二個元素進行分配
。mydict2$data_point$sample1 < - mydict2$data_point$sample1[/span>2]
> dput(mydict2)
list(data_point = list(sample1 = 2。 sample2 = c(200, 300)))
或者通過索引
mydict2$data_point$sample1 < - mydict2$data_point$sample1[-1]
> mydict2
$data_point
$data_point$sample1
[1] 2
$data_point$sample2
[1] 200 300
如果我們想從'data_point'中洗掉所有的第1個元素,請進行回圈操作
。mydict2$data_point < - lapply(mydict2$data_point。 `[`, -1)
> mydict2
$data_point
$data_point$sample1
[1] 2
$data_point$sample2
[/span>1] 300
或者使用一個for回圈
for(i in seq_along(mydict2$data_point))
mydict2$data_point[[i]】 < - mydict2$data_point[[i]][/span>-1]
> mydict2
$data_point
$data_point$sample1
[1] 2
$data_point$sample2
[/span>1] 300
uj5u.com熱心網友回復:
我將使用purrr做這樣的事情。
library(purrr)
my_list < - list(data_point = list("sample1" = c(1000, 2)。 "sample2"= c(200。 300)))
remove_value < - function(x, value) x[/span>! x == value]
map_depth(my_list, 2。 remove_value, value = 1000)
$data_point
$data_point$sample1
[1] 2
$data_point$sample2
[1] 200 300
或者要洗掉一個特定的索引...
remove_index < - function(x, index) x[- index]
map_depth(my_list, 2。 remove_index, index = 1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/332218.html
標籤:
