首页 文章

性别概要

提问于
浏览
0

我正在运行我的数据摘要,当我做摘要(sn $ Gender)时,我得到:

长度:202(我有202条回复)类别:字符模式:字符

它应该说女99和男103.任何想法为什么会发生这种情况?

1 回答

  • 1

    原因是基于 methods for summary 以及调用哪个方法 .

    methods('summary')
    #[1] summary.aov                    summary.aovlist*               summary.aspell*               
    #[4] summary.check_packages_in_dir* summary.connection             summary.data.frame            
    #[7] summary.Date                   summary.default                summary.ecdf*                 
    #[10] summary.factor                 summary.glm                    summary.infl*                 
    #[13] summary.lm                     summary.loess*                 summary.manova                
    #[16] summary.matrix                 summary.mlm*                   summary.nls*                  
    #[19] summary.packageStatus*         summary.PDF_Dictionary*        summary.PDF_Stream*           
    #[22] summary.POSIXct                summary.POSIXlt                summary.ppr*                  
    #[25] summary.prcomp*                summary.princomp*              summary.proc_time             
    #[28] summary.srcfile                summary.srcref                 summary.stepfun               
    #[31] summary.stl*                   summary.table                  summary.tukeysmooth*
    

    通常在 factor 类上调用 summary.factor ,但如果它是 character ,则调用 summary.default 并根据 summary.default 中的条件调用

    if (is.factor(object)) 
        return(summary.factor(object, ...))
     .
     .
     .
    
     else if (is.recursive(object) && !is.language(object) && 
           (n <- length(object))) {
         sumry <- array("", c(n, 3L), list(names(object), c("Length", 
             "Class", "Mode")))
     .
     .
    
      else c(Length = length(object), Class = class(object), Mode = mode(object))
     .
     .
    

    它返回'Length','Class'和'Mode' .

    一种选择是将列专门转换为 factor 然后使用 summary 或调用 summary.factor

    class(sn$Gender)
    #[1] "character"
    
    summary(sn$Gender)
    #Length     Class      Mode 
    #  202 character character 
    
    
    summary.factor(sn$Gender)
    # female   male 
    #   93    109
    

    但是,我们可以避免这种混乱并使用 table(sn$Gender)

    数据

    set.seed(24)
    sn <- data.frame(Gender = sample(c('male', 'female'), 202, 
                          replace = TRUE), stringsAsFactors = FALSE)
    

相关问题