替换 R 中列表列表中的部分文本

问题描述

我正在尝试替换列表名称的特定部分,但我遇到了困难。在这种情况下,我只会删除有 x 的部分中的数字。

list1 <- list("L(x0801,1)" = 1,"L(x0801,2)" = 2,3)" =4,"rer" =2,"L(rer,1)" = 3)
list2 <- list("L(x0901,"L(x0901,4)" =4,1)" = 3)

mylist <- list(list1,list2)

所以我试图排除 x 变量附带的数字,但我不想删除其他变量的数字。所以我希望 mylist 是两个这样的列表的组合:

list1 <- list("L(x,"L(x,1)" = 3)
list2 <- list("L(x,list2)

我尝试使用类似下面的代码,但删除了其他变量名称的编号。

mylist <- lapply(mylist,function(x) setNames(x,sub("\\d+","",names(x))))

有人可以帮我吗?谢谢。

解决方法

你快到了。只是对替换函数的一个小改动。我在下面做的是用字母 x 替换 x[然后是一些数字]。

mylist <- lapply(mylist,function(x) setNames(x,sub("x\\d+","x",names(x))))