我有这个载体:
traits <- c("resid.mean.EXT" , "resid.q75.EXT" , "resid.median.red" , "resid.q75.red" , "resid.median.yellow" ,
"resid.q75.yellow" , "resid.mean.norm.EXT" , "resid.q75.norm.EXT" , "resid.mean.norm.yellow" ,"resid.median.norm.yellow",
"resid.q75.norm.yellow" , "resid.iqr.EXT" , "resid.iqr.red" , "resid.iqr.yellow" , "resid.q90.EXT" ,
"resid.q90.norm.red" , "resid.q90.norm.yellow" , "resid.var.EXT" , "resid.q25.TOF" , "resid.q25.norm.yellow" )
载体特征中有20个独特的字符串,但有4个独特的特征类:
classes <- c("EXT", "red", "TOF", "yellow")
这些类由traits
向量中每个元素的最后一个单词确定。
我想将角色向量traits
变成具有4个等级的因子,具体取决于它们所在的等级。
感谢您的帮助!
编辑 似乎有些混乱。为了澄清,我想将traits
变成具有4个级别的因子向量,对应于属于哪个类,如上所述确定。感谢
答案 0 :(得分:0)
您可以使用正则表达式和sub
函数,例如:
## this will replace the whole string in traits with the content after the last dot
cl <- sub(".*\\.([A-Za-z]+)$", "\\1", x=traits)
factor(cl)
# [1] EXT EXT red red yellow yellow EXT EXT yellow yellow yellow EXT red yellow EXT red yellow EXT TOF yellow
# Levels: EXT red TOF yellow