2017-01-12 50 views
0

我有一個的大數據幀與一列顯示不同的配置文件:變化列在正則表達式中的R

PROFILE   NTHREADS TIME 
profAsuffix  1  3.12 
profAanother  2  1.9 
profAyetanother 3 
... 
profBsuffix  1  4.1 
profBanother  1  3.9 
... 

我要重命名的所有profA *模式他們在一個名稱(profA)相結合,做與profB *相同。到現在爲止,我這樣做:

data$PROFILE <- as.factor(data$PROFILE) 
levels(data$PROFILE)[levels(data$PROFILE)=="profAsuffix"] <- "profA" 
levels(data$PROFILE)[levels(data$PROFILE)=="profAanother"] <- "profA" 
levels(data$PROFILE)[levels(data$PROFILE)=="profAyetanother"] <- "profA" 

等等。但是這次我有太多不同的後綴,所以我想知道我是否可以使用grepl或類似的方法來做同樣的事情。

+1

可能的複製[從R A字符串中提取的最後n個字符(http://stackoverflow.com/questions/7963898/extracting-the-last-n-字符從 - 一個串入-R) – Sotos

回答

2

我們可以用sub

data$PROFILE <- sub("^([a-z]+[A-B]).*", "\\1", data$PROFILE)