首页 > 解决方案 > 删除具有可变长度和模式的 colnames 的结尾

问题描述

我目前有一个带有 colnames 的数据框,我试图在第二个周期之后截断结尾。

下面的例子:

GTEX.W5WGY.1726.SM.4LMI5 GTEX.WEY5.1226.SM.4LMIQ
23 20
0 32

理想输出:

GTEX.W5WGY GTEX.WEY5
23 20
0 32

我正在尝试将其改为此输出并尝试过 sub 但它不起作用。

colnames(x) <- sub("..*.SM..*", "", colnames(x))

任何帮助,将不胜感激!

标签: r

解决方案


我们可以更改模式以从字符串的开头 ( ) 后跟 a和第二个无点开始捕获不是.( ) 的字符,替换为捕获组的反向引用[^.]+^.

colnames(x) <- sub("^([^.]+\\.[^.]+)\\..*", "\\1", colnames(x))

推荐阅读