如何计算满足R中特定条件的每一列的行数

时间:2020-10-27 20:57:14

标签: r

下午好!

我已经查看了stackoverflow,但是我找不到确切的问题,所以我们开始吧。

我有以下数据框:

mydata <- read.table(header=TRUE, text="
  rime   point   sound
  50      80       50
  80      80       20
  5       90       80
  0       10       80
  50      80       50
  80      80       20
  5       90       80
  0       10       80
  5       90       80
  0       10       80
")

对于每一列,我想知道大于或等于50的观察值的百分比。我希望最终产品看起来像这样。

mydata2 <- read.table(header=TRUE, text="
  rime   point   sound
  40%     70%     80%
")

有人有什么想法吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

一个选项可能是:

colSums(mydata >= 50)/nrow(mydata) * 100

 rime point sound 
   40    70    80 

如果需要将其用作数据框:

as.data.frame(rbind(colSums(mydata >= 50)/nrow(mydata)))

答案 1 :(得分:0)

一种选择是使用colMeans并乘以100

100 * colMeans(mydata >= 50)
#   rime point sound 
#  40    70    80 

如果需要是data.frame

as.data.frame.list( 100 * colMeans(mydata >= 50))
#    rime point sound
#1   40    70    80