从R中列表内的变量名中删除后缀

从R中列表内的变量名中删除后缀,r,regex,list,function,dataframe,R,Regex,List,Function,Dataframe,使用BASE R,我想知道如何从下面的g中的变量中删除.number后缀(例如,short..3变成short) G <- list(AA = list(short..3 = data.frame(dint = 5:7, SD = 0:2), short..2 = NULL, del1 = data.frame(dint = 1:3, SD = 2:4), del1

使用BASE R,我想知道如何从下面的
g
中的变量中删除
.number
后缀(例如,
short..3
变成
short

G <- list(AA = list(short..3 = data.frame(dint = 5:7, SD = 0:2), 
                    short..2 = NULL, 
                    del1 = data.frame(dint = 1:3, SD = 2:4), 
                    del1..2 = NULL, del2 = NULL), 
          BB = list(short = data.frame(dint = 1:4, SD = 2:5), 
                    short..2 = NULL, 
                    del1..4 = data.frame(dint = 5:6, SD = 3:4), 
                    del1..2 = NULL, 
                    del2 = data.frame(dint = 6, SD = 1)))

G可能适当使用了
gsub()
。如果删除所有后缀,您的名称是否会重复?如果您的
编号
(在
.number
中)仅为一位整数(如示例中所示),则不需要在
\\d
之后加上
*
for (i in seq_along(G)) {
  names(G[[i]]) <- gsub("(.*)\\.\\.\\d*", "\\1", names(G[[i]]))
}
lapply(G, function(i) setNames(i, gsub("(.*)\\.\\.\\d*", "\\1", names(i))))