R从数据框中的变量名中删除后缀

问题描述 投票:0回答:2

我正在尝试删除R中数据框变量名的后缀以聚合此列。

我已经将一个excel工作表导入到R中的数据框中,但是列名是这样导入的

var1...9   var2...10   var1...11   var2...12   var3.name...13
      12           7           5          10                6
       3           9          20           7               13

我需要删除(从...中的)最后一部分,以按名称汇总列。

var1   var2   var3.name
  17     17           6
  23     16          13

为此,我正在使用dplyr

library(dplyr)
x %>% 
  rename_at(.vars = vars(ends_with("...*")),
            .funs = funs(sub("[...]*$", "", .)))

但不起作用,我认为使用*不是使用通配符的适当方法...

r dataframe dplyr wildcard calculated-columns
2个回答
1
投票
names(x) <- sub("\\.{3}\\d*$", "", names(x))

1
投票
library(dplyr) library(stringr) x %>% rename_at(vars(matches('\\.{3}\\d+$')), ~ str_remove(., "\\.{3}\\d+$"))

注意:执行此操作时,它还会根据输入示例返回具有重复列名的data.frame / tibble(不建议)。

© www.soinside.com 2019 - 2024. All rights reserved.