Преглед на файлове

Ajout paramètre "first" dans la fonction uniq() pour prendre la première

occurrence
static
Maxime Wack преди 6 години
родител
ревизия
f1826b18ea
променени са 1 файла, в които са добавени 21 реда и са изтрити 4 реда
  1. +21
    -4
      misc.R

+ 21
- 4
misc.R Целия файл

@@ -7,14 +7,31 @@ library(plotly)
library(forcats)
library(markdown)

uniq <- function(df, ...)
uniq <- function(df, ..., first = F)
{
uniq_vector <- function(x, fst)
{
x %>%
c %>%
rle %>%
.$lengths ->
l

if (fst)
{
l %>%
cumsum %>%
`-`(l) + 1
} else
{
l %>% cumsum
}
}

eval(substitute(alist(...))) %>%
map_chr(as.character) %>%
intersect(names(df)) %>%
map(~rle(df[[.x]] %>% c) %>%
.$lengths %>%
cumsum) %>%
map(~uniq_vector(df[[.x]], first)) %>%
reduce(union) %>%
sort -> columns



Loading…
Отказ
Запис