【发布时间】:2018-03-19 19:30:34
【问题描述】:
我试图通过循环遍历向量的行 (theta) 和单独的矩阵 (tmp) 的列来创建响应概率矩阵。我不断收到错误消息incorrect number of subscripts on matrix并且不确定我做错了什么。任何帮助将不胜感激!
theta = seq(from=-4, to=4, by=.01)
ID = c(1:10)
a = c(1.11,1.03,1.03,1.62,1.23,1.16,1.46,0.91,0.78,0.85)
b = c(-0.33,0.05,-1.25,-0.18,0.47,-1.11,-0.17,-0.57,-0.18,0.45)
c = c(0.16,0.18,0.17,0.24,0.12,NA,NA,NA,0.29,NA)
tmp = data.frame(ID,a,b,c)
for (j in 1:nrow(tmp)) {
for (k in 1:length(theta)){
RP[k,j] = tmp$c[j] + ((1-tmp$c[j])/
(1+exp(-1.7 * tmp$a[j]*theta - tmp$b[j])))
}
}
所需的结果是行数与 theta 长度相同且列数与 tmp 数据帧相同的矩阵。它应该是这样的:
head(tmp2)
p1 p2 p3 p4 p5 p6 p7 p8 p9 p10
1 0.1603182 0.1807822 0.1702159 0.2400104 0.1203281 NA NA NA 0.2929362 NA
2 0.1603243 0.1807960 0.1702197 0.2400107 0.1203350 NA NA NA 0.2929752 NA
3 0.1603305 0.1808100 0.1702236 0.2400110 0.1203421 NA NA NA 0.2930148 NA
4 0.1603368 0.1808243 0.1702276 0.2400113 0.1203493 NA NA NA 0.2930549 NA
5 0.1603432 0.1808389 0.1702316 0.2400116 0.1203567 NA NA NA 0.2930955 NA
6 0.1603497 0.1808537 0.1702357 0.2400120 0.1203642 NA NA NA 0.2931366 NA
【问题讨论】: