Возврат списка функций с помощью dplyr

ТРЕБОВАНИЯ файлы.

Серьезно, я использую это совместно с virtualenv каждый день.


БУДУЩАЯ ЗАВИСИМОСТЬ УПРАВЛЕНИЯ, GUYS

Файлы требований позволяют создавать снимок всех пакетов, которые были установлены через pip. Инкапсулируя эти пакеты в виртуальной среде, вы можете заставить свою кодовую базу работать с определенным набором пакетов и делиться этой кодовой базой с другими.

Из документации Heroku https://devcenter.heroku.com / articles / python

Вы создаете виртуальную среду и устанавливаете оболочку для ее использования. (инструкции bash / * nix)

virtualenv env
source env/bin/activate

Теперь все скрипты python, запущенные с этой оболочкой, будут использовать пакеты и конфигурацию этой среды. Теперь вы можете установить пакет локально в эту среду, не устанавливая его на глобальном уровне на вашем компьютере.

pip install flask

Теперь вы можете сбросить информацию о том, какие пакеты установлены с помощью

pip freeze > requirements.txt

Если вы проверили этот файл в контроле версий, когда кто-то еще получит ваш код, они могут настроить свою собственную виртуальную среду и установить все зависимости с помощью:

pip install -r requirements.txt

Каждый раз, когда вы можете автоматизировать скуку, как это является удивительным.

0
задан user3173412 17 January 2019 в 14:20
поделиться

1 ответ

Мы можем вывести функцию, заключив ее в list

library(tidyverse)
df %>% 
    group_by(group) %>%
    summarise(fns = list(splinefun(x, y)))

Если предполагается создать столбец в исходных данных, заменить summarise на mutate. Однако это будет повторять функцию для каждой строки группы


Если мы хотим применить функции к другому набору данных в соответствующей «группе», то выполнить объединение со вторым набором данных и применить функция сохраняется в первом столбце данных в интересующем столбце вторых данных с использованием map2

df %>% 
   group_by(group) %>% 
   summarise(fns = list(splinefun(x, y))) %>% 
   left_join(df2) %>% 
   mutate(newval = map2_dbl(fns, xval, ~ .x(.y)))

Обновление

На основе обновленных данных в сообщении ОП

fit %>% 
  right_join(newData) %>% 
  mutate(newval = map2_dbl(fns, xval, ~ if(!is.null(.x)) .x(.y) else NA_real_))

Или создайте функцию с possibly (из purrr) и примените

f1 <- possibly(function(x, y) x(y), otherwise = NA_real_)
fit %>% 
  right_join(newData) %>% 
  mutate(newval = map2_dbl(fns, xval, f1))

данные

df2 <- data.frame(group = 1:3, xval = c(1.5, 2.5, 3.2))
newData <- data.frame(group=c(rep(1,5),rep(2,5),rep(3,5),rep(4,5)), 
                   xval = rep(c(0,1,2,3,4),4))
0
ответ дан akrun 17 January 2019 в 14:20
поделиться
Другие вопросы по тегам:

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