Próbuję wpisać ten wzór do R:Jak suma po j = 1 do (i-1), dla każdego z elementów [I] (wpisując wzór z artykułu)
formuła przyjmuje następujące dane wejściowe:
- M: roczna liczba zgonów (śmiertelność z dowolnej przyczyny);
- D: roczna liczba zgonów z powodu raka (śmiertelność z powodu raka);
- R: roczna liczba zarejestrowanych przypadków raka;
- N: Wielkość populacji w połowie roku.
- w: Szerokość każdego przedziału wiekowego, np. [0-5) ma szerokość 5 lat, a końcowy przedział to 85+ lat, a więc jest nieskończenie szeroki.
Wszystkie powyższe wektory wejściowe mają długość 18 elementów, ponieważ odnoszą się do 18 przedziałów wiekowych. Pierwsze 17 przedziałów wiekowych ma 5 lat szerokości, a ostatni przedział (85+ lat) jest nieskończenie szeroki.
szacunków formuła życia ryzyko zachorowania na raka, jak proponowane przez Sasieni et al 2011 http://www.nature.com/bjc/journal/v105/n3/full/bjc2011250a.html
Poniżej próbowałem zaimplementować części równania przed i po . Korzystne są
# Input data:
M <- c(140L, 12L, 12L, 59L, 94L, 101L, 117L, 213L, 368L, 607L, 1025L,
1488L, 2255L, 2787L, 3257L, 3715L, 4231L, 6281L)
R <- c(42L, 22L, 28L, 54L, 77L, 108L, 169L, 227L, 293L, 531L, 863L,
1464L, 2591L, 3334L, 3045L, 2605L, 1890L, 1261L)
D <- c(2L, 1L, 2L, 6L, 4L, 7L, 15L, 26L, 67L, 120L, 304L, 497L, 883L,
1158L, 1321L, 1318L, 1177L, 1065L)
N <- c(167323L, 168088L, 176017L, 180986L, 168189L, 155506L, 174274L,
195538L, 207287L, 204711L, 183802L, 174342L, 183415L, 151277L,
104199L, 71782L, 47503L, 33946L)
# W width of age interval
w <- c(5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,Inf)
# function
v1 <- numeric()
for(i in 1:length(R)) {
v1[i] <- R[i]/(R[i] + M[i] - D[i]) * (1 - exp(- (w[i]/N[i]) * (R[i] + M[i] - D[i])))
}
sum(v1)
Odpowiedzi gdzie kod wygląda jak najwięcej jak równanie, tak że współpracownicy bez znajomości R rozpoznaje równanie w kodzie.
Odpowiedzią ma być 0,376127241057822
można zidentyfikować problem? –
Czy wiesz, że wynik powinien być? –
Nie, nie wiem, jaki wynik powinien być niestety. –