Более гибкое решение для создания элементов и связывания событий ( source )
// creating a dynamic element (container div)
var $div = $("", {id: 'myid1', class: 'myclass'});
//creating a dynamic button
var $btn = $("
1
задан Luc 28 March 2019 в 01:09
поделиться
Если у вас есть только один символ совпадения и замены, вы можете использовать chartr
chartr(paste0(lookup$var, collapse = ""),
paste0(lookup$description, collapse = ""), variable)
#[1] "A" "B^C" "A^E" "D" "D"
chartr
в основном говорит, что заменить
paste0(lookup$var, collapse = "")
#[1] "12345"
на
paste0(lookup$description, collapse = "")
#[1] "ABCDE"
Это также полезно, поскольку не изменяет и не возвращает NA
для символов, которые не совпадают.
Вы можете использовать scan
для разбора текста на числовые значения, которые затем можно использовать в качестве указателя для выбора элементов, которые затем можно сложить вместе. Добавьте quiet = TRUE, чтобы отключить чтение сообщений.
sapply(variable, function(t) {
paste( lookup$description[ scan(text=t, sep="^")], collapse="^")} )
Read 1 item
Read 2 items
Read 2 items
Read 1 item
Read 1 item
1 2^3 1^5 4 4
"A" "B^C" "A^E" "D" "D"
Как уже упоминалось в комментариях, есть несколько шагов, необходимых для достижения желаемого результата. Следующее разделяет вашу переменную, индексирует результаты по переменной описания, а затем использует вставку для свертывания нескольких элементов.
sapply(strsplit(variable, "\\^"), function(x) paste0(lookup$description[as.numeric(x)], collapse = "^"))
[1] "A" "B^C" "A^E" "D" "D"