R本功能适用于此示例

时间:2018-04-05 08:19:26

标签: r

这是我的目标。

      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
  1. 首先,我从文本中带来了两列(第一列:age,第二列:deathrate)的表格。

    deathrate.table <- read.table("deathrate.txt", header = TRUE)
    
    Age  deathrate 
    1     1   0.00213 
    2     2   0.00096 
    3     3   0.00052 
    
  2. 其次,为了根据每个年龄x 计算 dx,我是否必须使用for循环或其他功能?

    在Excel中,我会使用'age'作为关键来为每个年龄段使用死亡率的vlookup值来计算“ dx = lx * deathrate

  3. 最后,我呼吁输出获取我的目标数据。

    return(data.frame(x=x, lx=lx, dx=dx)
    

1 个答案:

答案 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