Скажем, я сгенерировал некоторые данные примерно так:
dat <- data.frame(x = rnorm(100), y = rnorm(100), z = rnorm(100))
dat[sample(nrow(dat), 5), 3] <- NaN
dat[sample(nrow(dat), 5), 3] <- Inf
Теперь некоторые из значений z равны Inf
или NaN
.
Первые 10 строк результатовиз
cut(dat$z[is.finite(dat$z)],6)[1:10]
являются
[1] (0.286,1.17] (0.286,1.17] (0.286,1.17] (0.286,1.17] (0.286,1.17]
[6] (0.286,1.17] (-1.48,-0.599] (-1.48,-0.599] (-0.599,0.286] (0.286,1.17]
6 Levels: (-2.37,-1.48] (-1.48,-0.599] (-0.599,0.286] ... (2.06,2.94]
, но если я попытаюсь сделать следующее присваивание
dat$col[is.finite(dat$z)] <- cut(dat$z[is.finite(dat$z)],6)
, я получу целые числа вместо меток:
> dat$col[1:10]
[1] 4 4 4 4 4 4 2 2 NA 3
Как правильно назначить метки факторов только подмножеству строк?
Спасибо!Uri