这是我的目标。
x lx dx
1 15 100000.000 3000.0000
2 16 97000.000 2910.0000
3 17 94090.000 2822.7000
i xi lxi dxi
每个变量的公式
l1 = 100000
lx+1 = lx - dx
dx = lx * deathrate
首先,我从文本中带来了两列(第一列:age
,第二列:deathrate
)的表格。
deathrate.table <- read.table("deathrate.txt", header = TRUE)
Age deathrate
1 1 0.00213
2 2 0.00096
3 3 0.00052
其次,为了根据每个年龄x 计算 dx,我是否必须使用for
循环或其他功能?
在Excel中,我会使用'age'作为关键来为每个年龄段使用死亡率的vlookup值来计算“ dx = lx * deathrate ”
最后,我呼吁输出获取我的目标数据。
return(data.frame(x=x, lx=lx, dx=dx)
答案 0 :(得分:0)
这是一个带有for循环的解决方案。
SITEID ADDRESS
123 1 New Street,New Town,New vile
456 2 Elm Road,New York,New York
这是输出:
deathrate.table <- 'Age deathrate
1 0.00213
2 0.00096
3 0.00052'
deathrate.table <- read.table(text = deathrate.table, header = T)
x <- 1:3
out <- data.frame(x)
out$lx <- 100000
out$deathrate <- deathrate.table$deathrate
out$dx <- out$lx * out$deathrate
for (i in 2:nrow(out)){
out$lx[i] <- out$lx[i-1] - out$dx[i-1]
}
out$deathrate <- NULL
out