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