我正在运行我的数据摘要以及何时摘要(sn $ Gender) 我明白了:
长度:202(我有202条回复) 类别:角色 模式:角色
应该说女99和男103。 有关为何发生这种情况的任何想法?
答案 0 :(得分:1)
原因是基于methods
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))
.
.
factor
它返回&#39;长度&#39;,&#39;类&#39;&#39;模式&#39;。
一种选择是将列专门转换为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)
struct st2;
typedef struct st2 *foo;