Как преобразовать формулу R в текст?

Пусть ваш html для вашего флажка будет как

<input type="checkbox" name="check1">

. Затем после отправки вашей формы вам необходимо проверить, как

if (isset($_POST['check1'])) {

    // Checkbox is selected
} else {

   // Alternate code
}

Предполагая, что check1 должен быть вашим checkbox name.And, если ваш метод отправки формы GET, вам нужно проверить с помощью $_GET переменных, таких как

if (isset($_GET['check1'])) {

   // Checkbox is selected
} 
41
задан MichaelChirico 1 November 2017 в 09:42
поделиться

4 ответа

Самый простой способ это:

f = formula(model)
paste(f[2],f[3],sep='~')

готово!

3
ответ дан TPArrow 1 November 2017 в 09:42
поделиться

Затем добавьте gsub для удаления пробелов

gsub("  ", "", paste(format(frm), collapse = ""))
.
1
ответ дан Azik Abdullah 1 November 2017 в 09:42
поделиться

Краткое решение из пакета formula.tools как функция as.character.formula:

frm <- celkem ~ rok + mesic
Reduce(paste, deparse(frm))
# [1] "celkem ~ rok + mesic"

library(formula.tools)
as.character(frm)
# [1] "celkem ~ rok + mesic"

Reduce может быть полезно в случае длинных формул:

frm <- formula(paste("y ~ ", paste0("x", 1:12, collapse = " + ")))

deparse(frm)
# [1] "y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 + "
# [2] "    x12"                                                      
Reduce(paste, deparse(frm))
# [1] "y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 +      x12"

Что из-за width.cutoff = 60L в ?deparse.

34
ответ дан Julius Vainora 1 November 2017 в 09:42
поделиться

Здесь решение, которое использует print.formula, кажется хитрым, но оно делает работу в oneline и избегает использования deparse, и нет необходимости использовать дополнительный пакет. Я просто фиксирую вывод формулы печати, используя capture.output

paste("my text",capture.output(print(formula(celkem ~ rok + mesic))))
[1] "my text celkem ~ rok + mesic"

В случае длинной формулы:

 ff <- formula(paste("y ~ ", paste0("x", 1:12, collapse = " + ")))
 paste("my text",paste(capture.output(print(ff)), collapse= ' '))

 "my text y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 +      x12"
2
ответ дан agstudy 1 November 2017 в 09:42
поделиться
Другие вопросы по тегам:

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