如何在R中使用apply函数来删除循环

如何在R中使用apply函数来删除循环,r,apply,R,Apply,我有一个矩阵 A <- matrix(c(1,2,1,2,4,4,6,7,6),nrow=3,ncol=3) A您的矩阵: A <- matrix(c(1,2,3,4,5,6,1,4,6), ncol=3, byrow=T) 既然您正在使用R,为什么不以其他R用户可以轻松使用的方式共享您的数据呢?似乎apply(如果else(a==1 | a==6,2/3,1/3),2,prod)可能是您想要的,或者接近它。但是,是的,请让这个R-重现。@AnandaMahto我已经编辑了这个问

我有一个矩阵

A <- matrix(c(1,2,1,2,4,4,6,7,6),nrow=3,ncol=3)
A您的矩阵:

A <- matrix(c(1,2,3,4,5,6,1,4,6), ncol=3, byrow=T)

既然您正在使用R,为什么不以其他R用户可以轻松使用的方式共享您的数据呢?似乎
apply(如果else(a==1 | a==6,2/3,1/3),2,prod)
可能是您想要的,或者接近它。但是,是的,请让这个R-重现。@AnandaMahto我已经编辑了这个问题,并提供了我正在使用的代码
A <- matrix(c(1,2,3,4,5,6,1,4,6), ncol=3, byrow=T)
B <- apply(A, 2, function(x) prop.table(table(x))[as.character(x)])
#           [,1]      [,2]      [,3]
# [1,] 0.6666667 0.3333333 0.3333333
# [2,] 0.3333333 0.3333333 0.6666667
# [3,] 0.6666667 0.3333333 0.6666667
apply(B, 1, prod)
#[1] 0.07407407 0.07407407 0.14814815