Можливо, я правильно не зрозумів вашу проблему через простоту вашого прикладу. Наскільки я розумію, у вас є ряд інструкцій, що зберігаються у векторах символів, і ці вказівки дуже близькі до належного форматування, за винятком того, що ви хочете присвоїти потрібний член числовому значенню.
Якщо моє розуміння вірно, я хотів би запропонувати дещо інший підхід, який не покладається на розбиття початкового рядка, а безпосередньо оцінює вашу інструкцію (з невеликим вдосконаленням).
original_string <- "variable_name=\"10\"" # Your original instruction, but with an actual numeric on the right, stored as character.
library(magrittr) # Or library(tidyverse), but it seems a bit overkilled if the point is just to import pipe-stream operator
eval(parse(text=paste(eval(original_string), "%>% as.numeric")))
print(variable_name)
#[1] 10
В принципі, то , що ми робимо, що ми «поліпшити» вашу інструкцію variable_name="10"
так , що вона стає variable_name="10" %>% as.numeric
, що є еквівалентом variable_name=as.numeric("10")
з magrittr
синтаксисом труби потоку. Потім ми оцінюємо цей вираз у поточному середовищі.
Сподіваюсь, що це допоможе тому, хто 8 років по тому блукав тут;