下午好!
我已经查看了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%
")
有人有什么想法吗?
谢谢。
答案 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