计算你有多少东西的基本方法是总结一个逻辑向量,如果原始元素是你想要计算的东西,逻辑向量的每个元素都是 1,否则为 0。
让我们从一些数据开始:
N = 1000
set.seed(2)
DF <- data.frame(NAME=as.character(1:N),
YEAR=sample(c("Freshman","Sophomore","Junior","Senior"),
size=N, replace=T),
MAJOR=sample(c("BIO","ECON","HIST","LIT","MATH"),size=N,
replace=T, prob=c(.20, .15, .30, .30, .05)),
GPA=runif(N, min=0, max=4))
因此,我们通过以下方式了解您拥有多少BIO
个专业:
sum(DF$MAJOR=="BIO")
[1] 181
如果您想知道每个存在的专业有多少,您可以使用?unique获取专业列表,然后使用?lapply将上述函数应用于列表:
lapply(unique(DF$MAJOR), function(x){ sum(DF$MAJOR==x) })
这是一个稍微漂亮的版本:
cbind(levels(unique(DF$MAJOR)),
lapply(unique(DF$MAJOR), function(x){ sum(DF$MAJOR==x) }))
[,1] [,2]
[1,] "BIO" 297
[2,] "ECON" 303
[3,] "HIST" 181
[4,] "LIT" 155
[5,] "MATH" 64
你应该可以从这里拿走它。
更新: @DWin 是对的,我把它弄得太复杂了。由于DF$MAJOR
是一个因素,您可以简单地执行以下操作:
> summary(DF$MAJOR)
BIO ECON HIST LIT MATH
181 155 297 303 64