r - 如何获取列中特定值的行数

标签 r

我正在尝试获取特定列的行数。我有三列,分别是名称,年龄和专业。我如何才能从此列表中找出例如多少个BIO专业。

我有DF <-(姓名,年份,专业,GPA)
我想要一个功能,这样我就可以消除少于20人的任何专业。

所以我想要这样的东西,但是在实际的r代码中。

DF <- function(x){
##  Y <- get number of people for each major
##  GPA [DF$Y < 20] <- NA

任何帮助,将不胜感激

最佳答案

我认为到目前为止提供的两种方法过于复杂。尝试其中任何一种,第二种显然是“正确的方法”。 :-)(借用@gung的示例。)

#  1
> tapply( DF$MAJOR, DF$MAJOR, length)
 BIO ECON HIST  LIT MATH 
 181  155  297  303   64 

#  2
> table(DF$MAJOR)

 BIO ECON HIST  LIT

 MATH 
     181  155  297  303   64 

And as far as efficiency?

> system.time( {dt = data.table(DF)
+  foo <- dt[,.N,by=MAJOR] })
   user  system elapsed 
  1.384   0.027   1.417 
> system.time(foo<- table(DF$MAJOR) )
   user  system elapsed 
  0.110   0.025   0.134 
#edit:
> system.time( {dt = as.data.table(DF)
+  foo <- dt[,.N,by=MAJOR] })
   user  system elapsed 
  0.064   0.022   0.086 

回答注释中的附加问题:如何将表格结果与每条学生记录相关联,查看ave函数,并使用第一种方法与“[” -extraction或subset结合使用:
 DF$group.size <- ave(DF$MAJOR, DF$MAJOR, length)
 newDF <- DF[ DF$group.size >=20000 , ]

关于r - 如何获取列中特定值的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17177253/

相关文章:

r - 当可迭代对象不是函数的第一个参数时

regex - 从包含 '|' 的字符串中提取数字

r - 在查找表中使用多个引用值

javascript - 如何将 tabPanel 之一移动到 Shiny-App 中的网页右侧

r - 为什么 knit::spin 不渲染编号而 rmarkdown::render 渲染?

r - 给定日期范围和相应的 ID,找到具有重叠日期的 ID 组

r - 如何根据 R 中的 3d 加权数组生成随机数?

r - 根据元素名称组合列表元素

R plotly : subplot with table

r - 在 R 中数据表的 by= 调用中循环编号变量