Я пишу программу, которая взаимодействует с R, используя Python. По сути, у меня есть несколько библиотек R, которые я хочу включить в свой код Python. После загрузки rpy2
я определяю свои R-функции, которые я хочу использовать, в отдельном скрипте файла .R
.
Функция R требует, чтобы мы передали ей формулу для применения некоторой техники oversampling
. Ниже приведена функция R, которую я написал:
WFRandUnder <- function(target_variable, other, train, rel, thr.rel, C.perc, repl){
a <- target_variable
b <- '~'
form_begin <- paste(a, b, sep=' ')
fmla <- as.formula(paste(form_begin, paste(other, collapse= "+")))
undersampled = RandUnderRegress(fmla, train, rel, thr.rel, C.perc, repl)
return(undersampled)
}
Я передаю из python имя целевой переменной, а также список, содержащий имена всех других столбцов. Как я хочу, чтобы было так: my_target_variable ~ all other columns
Однако в этих строках:
a <- target_variable
b <- '~'
form_begin <- paste(a, b, sep=' ')
fmla <- as.formula(paste(form_begin, paste(other, collapse= "+")))
Формула не всегда формулируется, если в моих данных много столбцов. Что мне сделать, чтобы он всегда работал? Я объединяю имена всех столбцов с помощью оператора +
.
formula
я бы подмножил data.frame только сother
иtarget_variable
, оставив ту же формулу (target_variable~.
). - person nicola   schedule 27.02.2020