更改R中列表列表列表中的特定名称
我在R中有一个列表。我创建了以下示例列表来说明我的问题:更改R中列表列表列表中的特定名称,r,list,R,List,我在R中有一个列表。我创建了以下示例列表来说明我的问题: example_list <- list( list(id1 = 123, id2 = 321, school = 'notting'), list(id3 = 12, house = 'Y'), list(id4 = 18) ) 虽然我的函数由于某种原因无法工作,而且方法似乎有点不成熟,但有什么建议吗?我们将列表元素的名称
example_list <- list(
list(id1 = 123, id2 = 321, school = 'notting'),
list(id3 = 12, house = 'Y'),
list(id4 = 18)
)
虽然我的函数由于某种原因无法工作,而且方法似乎有点不成熟,但有什么建议吗?我们将
列表
元素的名称
替换为'id',然后返回列表
元素
sol_list <- lapply(example_list, function(x) {
names(x)[grep("id", names(x))] <- "id"
x})
identical(solution_list, sol_list)
#[1] TRUE
我们的名单里有两个相同的名字<代码>列表(id=123,id=321…@zx8754是的,也许这是一个糟糕的例子,我的实际数据集在同一个列表中有多个id,具有相同的值
列表(id1=123,id2=123)
etcUnderstand,您将如何按名称对列表中的第二个id
进行寻址?@zx8754完成此步骤后,我已删除了重复项如果您要删除重复项,则似乎无需更改列表名称。
replace_names<- function(x, r) {
indices <- grepl(r, names(x))
if(length(indices) > 0) {names(x)[indices] <- r}
lapply(example, replace_names, r = "id")
sol_list <- lapply(example_list, function(x) {
names(x)[grep("id", names(x))] <- "id"
x})
identical(solution_list, sol_list)
#[1] TRUE
lapply(example_list, function(x) setNames(x, sub("\\d+", "", names(x))))