R 应用函数真/假比率

R 应用函数真/假比率,r,apply,R,Apply,我有一个只有真/假值的数据帧 tf <- as.data.frame(matrix(c(rep(TRUE,5),rep(FALSE,5)),10,10)) tf我不知道您为什么使用nrow,但请检查以下内容: overlay <- apply(tf,2,function(x) sum(x == TRUE)/length(x) * 100) overlay匿名函数中的x函数(x)和(x==TRUE)/nrow(x)是对应于某一行的向量。因此,您需要的不是nrow,而是length

我有一个只有真/假值的数据帧

 tf <- as.data.frame(matrix(c(rep(TRUE,5),rep(FALSE,5)),10,10))

tf我不知道您为什么使用
nrow
,但请检查以下内容:

overlay <- apply(tf,2,function(x) sum(x == TRUE)/length(x) * 100)

overlay匿名函数中的
x
函数(x)和(x==TRUE)/nrow(x)
是对应于某一行的向量。因此,您需要的不是
nrow
,而是
length

apply(tf, 2, function(x) sum(x == TRUE) / length(x))
另一方面,您可以通过以下方式以矢量化方式实现相同的目标:

colMeans(tf)
#  V1  V2  V3  V4  V5  V6  V7  V8  V9 V10 
# 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 
这应该很快

colMeans(tf)
# V1  V2  V3  V4  V5  V6  V7  V8  V9 V10 
#0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5

非常感谢你。我不知道,nrow在这种情况下不起作用!但是我会使用colMeans(tf),因为它很简单。谢谢!它工作得很好。我不知道在这种情况下我不能使用nrow。@mucteamhappy编码
colMeans(tf)
# V1  V2  V3  V4  V5  V6  V7  V8  V9 V10 
#0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5