作者cwz1110 (麦克华斯基)
看板R_Language
标题[问题] For回圈写入matrix
时间Wed Apr 22 11:07:07 2020
[软体熟悉度]:
入门
[问题叙述]:
我目前想要做出多组数据的sp^2来估计群体的总变异数,目前遇到的问题是如果单跑
sqrt((((D[3+(i*4500-4500),5])^2)+((D[4+(i*4500-4500),5])^2))/(k-1-(k/2-1)))
这行的话出来的sp^2值是正确的
但如果用i=5000,k=4500时的for回圈做大量运算时sp^2就会跑掉
请问各位先进大大们有解法吗,小弟被困住好多天了,谢谢各位大大
[程式范例]:
for(i in c(1:5000)){
for (k in seq(4,4500,by = 2)) {
D[4+i*4500-4500,6] <- sqrt((((D[3+(i*4500-4500),5])^2)+((D[4+(i*4500-4500),5])
^2))/(k-1-(k/2-1)))
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.136.218 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1587524830.A.AA9.html
1F:→ andrew43: 没有回圈的情况时i和k是什麽?有回圈时是否有任何警告 04/22 11:29
2F:→ cwz1110: 没回圈时i =1,k=4先算出第一组的sp^2,回圈跑完後回圈没 04/22 11:34
3F:→ cwz1110: 有任何警告 04/22 11:34
4F:推 andrew43: 猜测单纯资料有毛病或是你的回圈设计不如预期 04/22 11:58
5F:推 rebe212296: 你k跟i维度没有一样会有问题,因为你的算式同时有ik 04/22 20:21
6F:推 rebe212296: 还有D[3+(i*4500-4500),5]这里3+(i*4500-4500)不能超D 04/22 20:30
7F:→ rebe212296: 的列数 04/22 20:30
8F:→ cwz1110: 感谢a大&r大的回覆 04/23 12:20
9F:→ cwz1110: 另回r大3+(i*4500-4500)没超过D吧 04/23 12:20
10F:→ cwz1110: 因爲我是5000*4500 04/23 12:20
11F:→ cwz1110: 谢谢r大回覆! 04/23 12:20
12F:推 x05863a1: j每次代数字你的D[4+i*4500-4500,6]这个元素就会被叠掉 04/24 21:53
13F:→ x05863a1: 一次,所以你整个回圈出来的结果会是每个i之下j=4500的 04/24 21:53
14F:→ x05863a1: 结果,也就是前面j=4到4498的结果都没有被传出 04/24 21:53
15F:→ cwz1110: 谢谢x大回覆!我原本是用[k+i*4500-4500,6]只不过後来检 04/25 19:06
16F:→ cwz1110: 查发现他sp^2完全都算错,所以才用[4+i*4500-4500,6]试跑 04/25 19:06
17F:→ cwz1110: 单跑可以但叠上for loop之後就错了,苦恼很久之後才来板 04/25 19:07
18F:→ cwz1110: 上问各位大神 04/25 19:07