替换 R 中列表列表中的部分文本
Replace parts of text in a list of lists in R
我正在尝试替换列表名称的特定部分,但遇到了困难。在这种情况下,我只会删除有 x 的部分的数字。
list1 <- list("L(x0801, 1)" = 1, "L(x0801, 2)" = 2, "L(x0801, 3)" =4, "rer" =2, "L(rer, 1)" = 3)
list2 <- list("L(x0901, 1)" = 1, "L(x0901, 2)" = 2, "L(x0901, 3)" =4, "L(x0901, 4)" =4, "rer" =2, "L(rer, 1)" = 3)
mylist <- list(list1, list2)
所以我试图排除 x 变量附带的数字,但我不想删除其他变量的数字。所以我希望 mylist 是两个列表的组合,如下所示:
list1 <- list("L(x, 1)" = 1, "L(x, 2)" = 2, "L(x, 3)" =4, "rer" =2, "L(rer, 1)" = 3)
list2 <- list("L(x, 1)" = 1, "L(x, 2)" = 2, "L(x, 3)" =4, "L(x, 4)" =4, "rer" =2, "L(rer, 1)" = 3)
mylist <- list(list1, 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))))
我正在尝试替换列表名称的特定部分,但遇到了困难。在这种情况下,我只会删除有 x 的部分的数字。
list1 <- list("L(x0801, 1)" = 1, "L(x0801, 2)" = 2, "L(x0801, 3)" =4, "rer" =2, "L(rer, 1)" = 3)
list2 <- list("L(x0901, 1)" = 1, "L(x0901, 2)" = 2, "L(x0901, 3)" =4, "L(x0901, 4)" =4, "rer" =2, "L(rer, 1)" = 3)
mylist <- list(list1, list2)
所以我试图排除 x 变量附带的数字,但我不想删除其他变量的数字。所以我希望 mylist 是两个列表的组合,如下所示:
list1 <- list("L(x, 1)" = 1, "L(x, 2)" = 2, "L(x, 3)" =4, "rer" =2, "L(rer, 1)" = 3)
list2 <- list("L(x, 1)" = 1, "L(x, 2)" = 2, "L(x, 3)" =4, "L(x, 4)" =4, "rer" =2, "L(rer, 1)" = 3)
mylist <- list(list1, 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))))