【发布时间】:2013-05-15 22:41:43
【问题描述】:
这个sn-p:
names<-c("Alice","Bob","Charlie")
ages<-c(25,24,25)
friends<-data.frame(names,ages)
a25 <- friends[friends$age==25,]
a25
table(a25$names)
给我这个输出
names ages
1 Alice 25
3 Charlie 25
Alice Bob Charlie
1 0 1
现在,既然数据框a25 不包含“Bob”,为什么输出中会出现“Bob”?我希望得到这样的输出(来自table 命令):
Alice Charlie
1 1
我错过了什么?
我的环境:
R version 2.15.2 (2012-10-26)
Platform: i386-w64-mingw32/i386 (32-bit)
【问题讨论】:
-
您的
names变量已转换为因子。table会显示每个因子级别的计数,即使它们的计数为 0。 -
@juba 谢谢,所以当我创建
a25变量时,它是否“继承”了三个级别的因素? -
a25不是变量,它是一个数据框,它是friends的子集。所以它从friends继承了age因子及其所有级别,是的。 -
@juba 好的,我明白了。是否有可能得到我期望的结果?
-
你可以试试
a25$age <- factor(a25$age)。或者将您的变量保留为character和stringsAsFactors=FALSE在data.frame。