R-версия Vlookup с несколькими совпадениями на ячейку

Более гибкое решение для создания элементов и связывания событий ( 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
поделиться

3 ответа

Если у вас есть только один символ совпадения и замены, вы можете использовать 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 для символов, которые не совпадают.

0
ответ дан Ronak Shah 28 March 2019 в 01:09
поделиться

Вы можете использовать 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" 
0
ответ дан 42- 28 March 2019 в 01:09
поделиться

Как уже упоминалось в комментариях, есть несколько шагов, необходимых для достижения желаемого результата. Следующее разделяет вашу переменную, индексирует результаты по переменной описания, а затем использует вставку для свертывания нескольких элементов.

sapply(strsplit(variable, "\\^"), function(x) paste0(lookup$description[as.numeric(x)], collapse = "^"))
[1] "A"   "B^C" "A^E" "D"   "D"  
0
ответ дан H 1 28 March 2019 в 01:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: