ТРЕБОВАНИЯ файлы.
Серьезно, я использую это совместно с 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
Каждый раз, когда вы можете автоматизировать скуку, как это является удивительным.
Мы можем вывести функцию, заключив ее в 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))