Я изучаю R в онлайн-курсе, и всякий раз, когда я пытаюсь ввести следующее (как предложено в курсе), я получаю эту ошибку:
> COPD$Diabetes<-c(0, 1)[as.integer(COPD$Diabetes)]
Error in `$<-.data.frame`(`*tmp*`, Diabetes, value = c(0, 0, 0, 0, 0, :
replacement has 21 rows, data has 101
У меня такое чувство, что я ' Я упускаю что-то очевидное. По сути, дело в том, чтобы преобразовать ХОБЛ $ диабет в целое число (вместо фактора, чтобы его можно было встроить в модель множественной регрессии), и я смог сделать это с помощью другого метода, но мне хотелось бы знать, почему они предлагают вышеуказанный метод и почему он не работает для меня?
Какой смысл c (0, 1) в этом случае? Я играл с c (0,1) [], и использовать его здесь для меня не имеет смысла, поскольку Diabetes - это также список целых чисел, содержащий 0 и 1:
> data<-c(1, 0, 1, 0)
> class(data)
[1] "numeric"
> c(0,1)[as.integer(c(1,0,1,0))]
[1] 0 0
> c(0,1)[as.integer(c(0,0,0,0))]
numeric(0)
> c(0,1)[as.integer(c(1,1,1,1))]
[1] 0 0 0 0
Я был Чтение очень многих онлайн-уроков и просмотр похожих вопросов, но я все еще застрял. Ниже приведен некоторый код для дополнительной информации о наборе данных:
> str(COPD)
'data.frame': 101 obs. of 24 variables:
$ X : int 1 2 3 4 5 6 7 8 9 10 ...
$ ID : int 58 57 62 145 136 84 93 27 114 152 ...
$ AGE : int 77 79 80 56 65 67 67 83 72 75 ...
$ PackHistory : num 60 50 11 60 68 26 50 90 50 6 ...
$ COPDSEVERITY: Factor w/ 4 levels "MILD","MODERATE",..: 3 2 2 4 3 2 3 3 2 3 ...
$ MWT1 : int 120 165 201 210 204 216 214 214 231 226 ...
$ MWT2 : int 120 176 180 210 210 180 237 237 237 240 ...
$ MWT1Best : int 120 176 201 210 210 216 237 237 237 240 ...
$ FEV1 : num 1.21 1.09 1.52 0.47 1.07 1.09 0.69 0.68 2.13 1.06 ...
$ FEV1PRED : num 36 56 68 14 42 50 35 32 63 46 ...
$ FVC : num 2.4 1.64 2.3 1.14 2.91 1.99 1.31 2.23 4.38 2.06 ...
$ FVCPRED : int 98 65 86 27 98 60 48 77 80 75 ...
$ CAT : int 25 12 22 28 32 29 29 22 25 31 ...
$ HAD : num 8 21 18 26 18 21 30 2 6 20 ...
$ SGRQ : num 69.5 44.2 44.1 62 75.6 ...
$ AGEquartiles: int 4 4 4 1 1 2 2 4 3 3 ...
$ copd : int 3 2 2 4 3 2 3 3 2 3 ...
$ gender : Factor w/ 2 levels "0","1": 2 1 1 2 2 1 1 2 2 1 ...
$ smoking : int 2 2 2 2 2 1 1 2 1 2 ...
$ Diabetes : int 1 1 1 0 0 1 1 1 1 0 ...
$ muscular : int 0 0 0 0 1 0 0 0 0 1 ...
$ hypertension: int 0 0 0 1 1 0 0 0 0 0 ...
$ AtrialFib : int 1 1 1 1 0 1 1 1 1 0 ...
$ IHD : int 0 1 0 0 0 0 0 0 0 0 ...