В R, когда вы принуждаете вектор от двоичного к числовому, имена удаляются.
Есть несколько возможных решений, о которых я уже говорил. Кажется опасным полагаться на неявное преобразование, добавляя 0 ко всем значениям, а sapply()
добавляет дополнительный цикл к моим операциям (что кажется неэффективным). Есть ли другой способ сохранить имена при преобразовании вектора с помощью as.numeric
?
# Set the seed
set.seed(1045)
# Create a small sample vector and give it names
example_vec <- sample(x = c(TRUE,FALSE),size = 10,replace = TRUE)
names(example_vec) <- sample(x = LETTERS,size = 10,replace = FALSE)
example_vec
# Y N M P L J H O F D
# FALSE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE
as.numeric(x = example_vec)
# [1] 0 1 0 0 1 1 1 1 1 1
example_vec + 0
# Y N M P L J H O F D
# 0 1 0 0 1 1 1 1 1 1
sapply(X = example_vec,FUN = as.numeric)
# Y N M P L J H O F D
# 0 1 0 0 1 1 1 1 1 1