[英]How to put printed values into a matrix
find.cor<-function(p,k){
ρ<-(p*k^2)/(0.0196*k^2-0.0032*k+0.0736)
return(ρ)
}
#Where ρ is equivalent to ρ(X1, X2)
for(p in seq(0, 0.018, by = 0.002)){
for(k in seq(2, 20, by =2))
print(find.cor(p,k))
}
这样做将显示来自函数“find.cor()”的 100 个值。 但是如何将这些值放入矩阵中? 有 10 行和 10 列。
谢谢你。
mat <- matrix(data = NA, nrow = 10, ncol = 10, byrow = FALSE,
dimnames = NULL)
i <- 0
for(p in seq(0, 0.018, by = 0.002)){
i <- i+1
j <- 0
for(k in seq(2, 20, by =2)){
j <- j+1
mat[i,j] <- find.cor(p,k)
# print(find.cor(p,k))
}
}
使用purrr
包:
matrix(unlist(map(p, find.cor, k = k)), ncol = 10)
输出:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 0 0.05494505 0.1098901 0.1648352 0.2197802 0.2747253 0.3296703 0.3846154 0.4395604 0.4945055
[2,] 0 0.08547009 0.1709402 0.2564103 0.3418803 0.4273504 0.5128205 0.5982906 0.6837607 0.7692308
[3,] 0 0.09473684 0.1894737 0.2842105 0.3789474 0.4736842 0.5684211 0.6631579 0.7578947 0.8526316
[4,] 0 0.09828010 0.1965602 0.2948403 0.3931204 0.4914005 0.5896806 0.6879607 0.7862408 0.8845209
[5,] 0 0.09992006 0.1998401 0.2997602 0.3996803 0.4996003 0.5995204 0.6994404 0.7993605 0.8992806
[6,] 0 0.10078387 0.2015677 0.3023516 0.4031355 0.5039194 0.6047032 0.7054871 0.8062710 0.9070549
[7,] 0 0.10128152 0.2025630 0.3038446 0.4051261 0.5064076 0.6076891 0.7089706 0.8102522 0.9115337
[8,] 0 0.10158730 0.2031746 0.3047619 0.4063492 0.5079365 0.6095238 0.7111111 0.8126984 0.9142857
[9,] 0 0.10178437 0.2035687 0.3053531 0.4071375 0.5089218 0.6107062 0.7124906 0.8142749 0.9160593
[10,] 0 0.10191602 0.2038320 0.3057481 0.4076641 0.5095801 0.6114961 0.7134121 0.8153282 0.9172442
使用sapply
sapply(seq(0, 0.018, by = 0.002), function(p) {
sapply(seq(2, 20, by = 2), function(k)
find.cor(p, k))
})
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 0 0.05494505 0.1098901 0.1648352 0.2197802 0.2747253 0.3296703 0.3846154
[2,] 0 0.08547009 0.1709402 0.2564103 0.3418803 0.4273504 0.5128205 0.5982906
[3,] 0 0.09473684 0.1894737 0.2842105 0.3789474 0.4736842 0.5684211 0.6631579
[4,] 0 0.09828010 0.1965602 0.2948403 0.3931204 0.4914005 0.5896806 0.6879607
[5,] 0 0.09992006 0.1998401 0.2997602 0.3996803 0.4996003 0.5995204 0.6994404
[6,] 0 0.10078387 0.2015677 0.3023516 0.4031355 0.5039194 0.6047032 0.7054871
[7,] 0 0.10128152 0.2025630 0.3038446 0.4051261 0.5064076 0.6076891 0.7089706
[8,] 0 0.10158730 0.2031746 0.3047619 0.4063492 0.5079365 0.6095238 0.7111111
[9,] 0 0.10178437 0.2035687 0.3053531 0.4071375 0.5089218 0.6107062 0.7124906
[10,] 0 0.10191602 0.2038320 0.3057481 0.4076641 0.5095801 0.6114961 0.7134121
[,9] [,10]
[1,] 0.4395604 0.4945055
[2,] 0.6837607 0.7692308
[3,] 0.7578947 0.8526316
[4,] 0.7862408 0.8845209
[5,] 0.7993605 0.8992806
[6,] 0.8062710 0.9070549
[7,] 0.8102522 0.9115337
[8,] 0.8126984 0.9142857
[9,] 0.8142749 0.9160593
[10,] 0.8153282 0.9172442
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.