我正在尝试删除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("[...]*$", "", .)))
但不起作用,我认为使用*不是使用通配符的适当方法...
names(x) <- sub("\\.{3}\\d*$", "", names(x))
library(dplyr)
library(stringr)
x %>%
rename_at(vars(matches('\\.{3}\\d+$')), ~ str_remove(., "\\.{3}\\d+$"))
注意:执行此操作时,它还会根据输入示例返回具有重复列名的data.frame / tibble(不建议)。