1

次の形式のデータを使用して、R プログラミング言語で (年齢別の) 死亡率をどのように計算できますか?

head(data)
##   age gender zone   Class       misc      bonus duration  death cost
## 1   0      M    1       4         12          1   0.1753      0    0
## 2   4      M    3       6          9          1   0.0000      1    0
## 3   5      F    3       3         18          1   0.4548      0    0
## 4   5      F    4       1         25          1   0.1726      0    0
## 5   6      F    2       1         26          1   0.1808      0    0
## 6   9      F    3       3          8          1   0.5425      0    0

つまり、年齢ごとに死亡者数を計算し、その特定の年齢で暴露された個人の総数で割ります。私は次のことを試しました:

n <- length(data$age);
    rate <- c(1:n); 
    for (i in 1:n){
    rate[i] <- sum(subset(data, age == i)$death)/ length(subset(data, age == i))
}

しかし、これは役に立ちませんでした-明らかに、1からnまでのすべての年齢がデータセットに存在するわけではありません-私は、上記の意味で仕事をする書かれたプログラムを探しています。

4

2 に答える 2

0

を使用すると、ほとんどの方法でそこに到達できますtable()。死亡していない人が 100% の時間 (たとえば、1 年) 存在し、死亡している人が 1/2 の時間存在すると仮定すると、これらのデータから曝露を計算するのに十分な情報が得られます。あなたのduration列が何であるかはわかりませんが、実際にはデータを説明していません.

# cheap version of your data:
DF <- data.frame(age = c(0,4,5,5,6,9), death = c(0,1,0,0,0,0))

(DAT      <- table(DF$death,DF$age))
    0 4 5 6 9
  0 1 0 2 1 1
  1 0 1 0 0 0
# weight these two rows for components of exposure:
Exposure <- colSums(DAT * c(1,.5))
# rates are the ratio of death counts in each age to exposure to risk in each age:
Rates <- DAT["1",] / Exposure

次に生命表の計算に進むと、これはいわゆるMxormx列です。

于 2013-12-17T17:47:09.523 に答える