Почему я получаю индекс за пределами ошибки? - PullRequest
0 голосов
/ 04 апреля 2019

Я следую некоторому коду из курса, но использую свои собственные данные.Теперь я получаю ошибку «индекс за пределами», но не могу найти решение онлайн

Попытка поиска решения в Интернете, попытка использовать категориальную переменную вместо crp2, которая является непрерывной.(ТБ является двоичным)

Чтобы проверить, является ли связь между crp2 и логарифмическими шансами наличия ТБ линейной (предположение о логистической регрессии)

# 1. create a cross tabulation of crp2 and TB status  
tb_by_crp2 <- table(crp2,Culpos)

# 2. output the frequencies of TB status by crp2 
freq_table <- prop.table(tb_by_crp2, margin = 1)

# 3. calculate the odds of having TB 
odds <- freq_table[, "yes"]/freq_table[, "no"]

Ошибка в [.default (freq_table,, "yes"): индекс вне границ

Я не ожидал ошибки

структура dput (tb_by_crp2) (c (31L, 3L), 3L, 1L, 3L, 5L, 1L, 2L, 0L, 3L, 2L, 1L, 1L, 2L, 1L, 0L, 1L, 0L, 0L, 1L, 2L, 0L, 1L, 0L, 1L, 1L, 1L, 0L, 0L, 1L, 2L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 2L, 2L, 0L, 1L, 0L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 2L, 0L, 0L, 1L, 1L, 0L, 1L, 0L, 0L, 1L, 1L, 0L, 0L, 2L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 3L, 2L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 1L, 0L, 1L, 1L, 0L, 1L, 1L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 3L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 1L, 2L, 0L, 1L, 1L, 0L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 0L, 1L, 0L, 0L, 1L, 1L, 2L, 1L, 0L, 1L, 1L, 0L, 1L, 1L, 0L, 1L, 1L, 1L, 0L, 1L, 1L, 0L, 1L, 1L, 0L, 1L, 1L, 0L, 1L, 1L, 2L), .Dim = c (85L, 2L), .Dimnames = структура (список (crp2 = c ("5", "6", "7", "8", "9"," 10 "," 12 "," 13 "," 14 "," 15 "," 16 "," 18 "," 19 "," 20 "," 21 "," 22 "," 24 ",«25», «26», «27», «28», «30», «31», «33», «34», «35», «36», «37», «38», «39"," 40 "," 42 "," 44 "," 46 "," 48 "," 51 "," 55 "," 56 "," 58 "," 60 "," 62 "," 68 ",«71», «72», «73», «76», «78», «81», «85», «89», «90», «91», «92», «95», «96"," 97 "," 99 "," 102 "," 103 "," 104 "," 106 "," 107 "," 109 "," 114 "," 119 "," 127 "," 128 ",«131», «132», «136», «141», «148», «152», «156», «157», «159», «162», «165», «168», «173"," 181 "," 193 "," 196 "," 199 "," 300 "), Culpos = c (" 0 "," 1 ")), .Names = c (" crp2 "," Culpos ")), класс = "таблица")

1 Ответ

0 голосов
/ 04 апреля 2019

С данными, которые вы предоставляете, имена столбцов freq_table - это не "да" и "нет", а 0 и 1.

Итак, если вы измените это на индекс столбца, он будет работать отлично:



odds <- freq_table[, 1]/freq_table[, 2]

> head(odds, n = 10)
   5    6    7    8    9   10   12   13   14   15 
15.5  3.0  Inf  Inf  Inf  Inf  Inf  Inf  0.0  3.0 

Надеюсь, что решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...