Значение приведено к символу, потому что вы используете метод matrix
для поднабора, а один из столбцов имеет символ класса.
Мы можем обойти это двумя способами. Либо мы удаляем столбец символов заранее,
v <- c(2, 4)
m <- matrix(c(2, 4), nrow=1)
l <- list(2, 4)
iris[,-5][t(v)]
# [1] 0.2
iris[,-5][m]
# [1] 0.2
iris[,-5][do.call(cbind, l)]
# [1] 0.2
, либо используем метод list
для поднабора. (iris
является data.frame
, поэтому применимы оба)
iris[[rev(v)]]
# [1] 0.2
iris[[rev(c(m))]]
# [1] 0.2
iris[[rev(unlist(l))]]
# [1] 0.2