返回列中最常见的前缀

时间:2015-05-15 10:23:23

标签: r

如果数据框中的某些列共享一个公共前缀,我该如何找到这样的公共前缀?

注意:此处的前缀表示任何数字出现之前的最长子字符串。

数据集可能如下所示:

Date,vix1,vix2,vix3,doSG124,doSG220

在这种情况下,我想获得vix而不是doSG,因为更多列(3)有vix作为前缀。

1 个答案:

答案 0 :(得分:2)

您可以在删除'后缀后尝试tablewhich.max。部分sub。在这里,我假设后缀是数字部分。

tbl <- table(sub('\\d+$', '', v1))
names(which.max(tbl))
#[1] "vix"

使用sub,我们将数字部分(\\d+)与字符串末尾($)匹配,并将其替换为''

数据

 v1 <- c('Date', 'vix1', 'vix2', 'vix3', 'doSG124', 'doSG220')