我无法弄清楚如何在V3中找到每个不同数字的正确百分比。 V4显示答案是否正确。 V2是块编号。
V2 V3 V4
1 4 1
1 10 1
1 4 0
1 4 1
1 10 0
2 8 1
2 8 0
感谢您的帮助。我是R的新手,几个小时都在谷歌搜索这个问题了!
答案 0 :(得分:1)
调用您的数据框DF
:
tapply(DF$V4 * 100, DF$V3, mean)
将为V3
中的每个唯一号码提供正确的百分比。
答案 1 :(得分:0)
使用data.table可能会有所帮助
library(data.table)
mydt <- data.table(DF, key="V2")
mydt[, mean(V4), by=V3]
结果:
V3 V1
1: 4 0.6666667
2: 10 0.5000000
3: 8 0.5000000
然后,如果你想在美学上清理它:
# you can format it nicely using round
mydt[, round(100*mean(V4),2), by=V3]
# V3 V1
# 1: 4 66.67
# 2: 10 50.00
# 3: 8 50.00
# you can give the new column a name (wrap it all in a list)
mydt[, list("Percent" = round(100*mean(V4),2)), by=V3]
# V3 Percent
# 1: 4 66.67
# 2: 10 50.00
# 3: 8 50.00