小编CAO*_*AOC的帖子

R:如何在此函数中避免R中的2'for'循环

我知道有很多关于如何避免R循环的主题,但我无法理解如何对迭代进行矢量化.我有一个数据集,在这里我用m表示.我想生成一个具有此函数的新矩阵,它将由数据的每列(m)的相关系数的p值组成.

m<-matrix(rnorm(100),nrow=10,ncol=10)
sig.p<-function(x){
  n= ncol(x)
  p.values<-numeric(n)
  p.values<-matrix(nrow=n,ncol=n)
  for (i in 1:C){
    for (t in 1:C){
      p.values[t,i]<-cor.test(x[,i],x[,t])$p.value
    }
  }
  p.values
}
sig.p(m)
Run Code Online (Sandbox Code Playgroud)

我无法理解如何使用mapply(如果是这种情况).任何人都可以帮助我建议如何矢量化这些迭代(使用mapply或其他)提前谢谢!

塞萨尔

iteration for-loop r

3
推荐指数
1
解决办法
147
查看次数

避免在data.frame中折叠具有多个因子的变量时避免嵌套嵌套

我有一个具有多个因素和多个数值变量的数据框。我想瓦解其中一个因素(平均而言)。

在我的尝试中,我只能想到嵌套的sapply或for循环以隔离要求平均值的数值元素。

var <- data.frame(A = c(rep('a',8),rep('b',8)), B = 
c(rep(c(rep('c',2),rep('d',2)),4)), C = c(rep(c('e','f'),8)),
                  D = rnorm(16), E = rnorm(16))
> var
   A B C           D           E
1  a c e  1.1601720731 -0.57092435
2  a c f -0.0120178626  1.05003748
3  a d e  0.5311032778  1.67867806
4  a d f -0.3399901000  0.01459940
5  a c e -0.2887561691 -0.03847519
6  a c f  0.0004299922 -0.36695879
7  a d e  0.8124655890  0.05444033
8  a d f -0.3777058654  1.34074427
9  b c e  0.7380720821  0.37708543 …
Run Code Online (Sandbox Code Playgroud)

for-loop r sapply

1
推荐指数
1
解决办法
37
查看次数

标签 统计

for-loop ×2

r ×2

iteration ×1

sapply ×1