首页 > 解决方案 > 重命名列表的元素

问题描述

我正在创建一个从数据框中提取变量的大型列表。这是一个例子:

df <- data.frame (A-Imp = c(4,8,2,4,3),
      A-Rea = c(4,4,5,6,7),
      B-Imp = c(3,2,6,5,8),
      B-Rea = c(1,2,6,7,9),
      C-Imp = c(4,8,6,6,10),
      C-Rea = c(6,8,5,1,9),
      D-Imp = c(1,6,4,8,8),
      D-Rea = c(3,3,6,1,10))

groups <- list(
   "groupA" <- c("A-Imp", "A-Rea"),
   "groupB" <- c("B-Imp", "B-Rea"),
   "groupC" <- c("C-Imp", "C-Rea"),
   "groupD" <- c("D-Imp", "D-Rea"))

我想要做的是重命名每个向量的条目,只保留名称的最后一部分。它看起来像这样:

groups <- list(
   "groupA" <- c("Imp", "Rea"),
   "groupB" <- c("Imp", "Rea"),
   "groupC" <- c("Imp", "Rea"),
   "groupD" <- c("Imp", "Rea"))

由于这是一个很长的列表,我不想手动进行。关于如何进行的任何想法?

标签: rlistrename

解决方案


groups <- lapply(groups, sub, pattern = "[A-Z]-", replacement = "")

str(groups)
List of 4
 $ : chr [1:2] "Imp" "Rea"
 $ : chr [1:2] "Imp" "Rea"
 $ : chr [1:2] "Imp" "Rea"
 $ : chr [1:2] "Imp" "Rea"

推荐阅读