какой шаблон из строки соответствует другой строке

MongoDB позволяет вам использовать cursor.count() даже при передаче limit() или skip().

Допустим, у вас есть db.collection с 10 элементами.

Вы может сделать:

async function getQuery() {
  let query = await db.collection.find({}).skip(5).limit(5); // returns last 5 items in db
  let countTotal = await query.count() // returns 10-- will not take `skip` or `limit` into consideration
  let countWithConstraints = await query.count(true) // returns 5 -- will take into consideration `skip` and `limit`
  return { query, countTotal } 
}
1
задан Nuria 16 January 2019 в 19:28
поделиться

2 ответа

Это делается с помощью инструментов Tidyverse, таких как pipe%>% и dplyr:

Разделяет столбец кода на два с указанным разделителем.

Поскольку «\» - это специальный символ в регулярном выражении, вы должны экранировать каждый \, который вы хотите найти, с другим.

Распространение преобразует его из высокой формы в широкую форму, как вам нужно.

library(dplyr)
df %>% 
  separate(code, into = c("colName", "value"), sep = "\\\\\\\\") %>% 
  spread(colName, value)
0
ответ дан Sahir Moosvi 16 January 2019 в 19:28
поделиться

Мы можем определить функцию, которая находит положение факторной переменной, которая при использовании в качестве регулярного выражения находит совпадение в столбце code:

find_match <- function(code, matches) {
    apply(sapply(matches, grepl, code), 1, match, x=T)
}

Если совпадения нет, эта функция возвращает NA для этой строки.

Далее, мы можем просто использовать mutate из dplyr, чтобы добавить каждый столбец факторов:

df %>% mutate(goal = find_match(code, goal),
              area = find_match(code, area),
              fr = find_match(code, fr))

Что дает:

  var1 var2              code goal area fr
1    1    a      goal\\\\meow    2   NA NA
2    2    b      area\\\\bank   NA    3 NA
3    3    c      area\\\\bank   NA    3 NA
4    4    d fr\\\\utilitarian   NA   NA  3
5    5    e     fr\\\\history   NA   NA  2
0
ответ дан C. Braun 16 January 2019 в 19:28
поделиться
Другие вопросы по тегам:

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