我在R中有以下代码
M <- matrix(NA, nrow = length(27:45), ncol = 2)
colnames(M) <- c("Age", "Whole Life Insurance Benefits")
i<-1
for (i in seq(27, 45, by=1)) {
M[i,1]<- i
M[i,2]<- Axn(actuarialtable = lc.lifetable, x=i)
i<-i+1
}
M
当我运行它时,出现错误subscript out of bounds
但是,如果我更改nrow=length(0:45)
,它可以正常运行,但是矩阵中有很多NA。你能告诉我怎么了吗?
谢谢
答案 0 :(得分:0)
您的代码中有2个问题:
1。和
nrow=length(27:45)
,您只有 19 行,但是您在if
中的顺序功能从 27 开始不存在 在矩阵中,您必须从 1 开始。2。。当您使用
if
功能时,如果您插入 {{ 1}} 在您的循环计数器中 总和为 2 ,您也可以使用i<-i+1
代替1:19
这里是正确且简单的代码:
seq(1,19,by=1)