繁体   English   中英

R中的for循环以获取表格

[英]for loop in R to get a table

我们正在研究我们的论文。 我们想制作一个表格,其中包含一个区域在不同时间段内的相关性和等级相关性的均值、最大值和最小值。 但结果只为我们提供了最后一个时间段的正确数字。 代码中的EC1是不同时间段的返回,在xts中。

EC_correlation_table <- matrix(nrow=10,ncol=3,byrow=T)
colnames(EC_correlation_table) <-c("Avg","Max","Min")
rownames(EC_correlation_table) <- rep(c("ρ","ρs"),times=5)
        for (a in c("EC1","EC2","EC3","EC4","EC5") ){
    for (i in seq(1,10,2)) {
      EC_correlation_table[i,1]<-mean(cor(get(a)))
      n <- length(cor(get(a)))
      EC_correlation_table[i,2]<-sort(cor(get(a)))[n-length(colnames(EC))]
      EC_correlation_table[i,3]<-min(cor(get(a)))
      
      EC_correlation_table[i+1,1]<-mean(cor(get(a),method = "spearman"))
       n <- length(cor(get(a),method = "spearman"))
      EC_correlation_table[i+1,2]<-sort(cor(get(a),method = "spearman"))[n-length(colnames(EC))]
      EC_correlation_table[i+1,3]<-min(cor(get(a),method = "spearman"))
    }
    }

这是我们得到的结果,但显然,它只是在最后一个时期重复正确的数字。

 > EC_correlation_table
         Avg       Max       Min
ρ  0.8326252 0.9310787 0.6795128
ρs 0.7920609 0.9139772 0.5997149
ρ  0.8326252 0.9310787 0.6795128
ρs 0.7920609 0.9139772 0.5997149
ρ  0.8326252 0.9310787 0.6795128
ρs 0.7920609 0.9139772 0.5997149
ρ  0.8326252 0.9310787 0.6795128
ρs 0.7920609 0.9139772 0.5997149
ρ  0.8326252 0.9310787 0.6795128
ρs 0.7920609 0.9139772 0.5997149

我认为我们在某些时候犯了一个小错误,但就是想不通。

想了一晚上,终于找到了解决办法~

for (i in 1:5) {
  for (a in sort(c("EC1","EC2","EC3","EC4","EC5"))[i] ){
    b<- 1+seq(0,8,2)[i]
  EC_correlation_table[b,1]<-mean(cor(get(a)))
  n <- length(cor(get(a)))
  EC_correlation_table[b,2]<-sort(cor(get(a)))[n-length(colnames(EC))]
  EC_correlation_table[b,3]<-min(cor(get(a)))
  c<- 1+seq(1,9,2)[i]
  EC_correlation_table[c,1]<-mean(cor(get(a),method = "spearman"))
   n <- length(cor(get(a),method = "spearman"))
  EC_correlation_table[c,2]<-sort(cor(get(a),method = "spearman"))[n-length(colnames(EC))]
  EC_correlation_table[c,3]<-min(cor(get(a),method = "spearman"))
}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM