繁体   English   中英

R中的因子水平

[英]Factor Levels in R

我有这个向量:

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个级别的因子向量,该级别对应于如上所述确定的所属类别。 谢谢

您可以使用正则表达式和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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM