Отображение строки в формуле, а не переменной в lm fit
Я не могу решить проблему, что при выполнении lm(sformula)
она не отображает строку, назначенную sformula
. У меня есть ощущение, что это общий способ R обрабатывает аргумент функции и не зависит от линейной регрессии.
Ниже приведен пример проблемы на примерах. Пример 1 имеет нежелательный выход lm(formula = sformula)
. Пример 2 – это результат, который я хотел бы сделать, например, lm(formula = "y~x")
.
x <- 1:10 y <- x * runif(10) sformula <- "y~x" ## Example: 1 lm(sformula) ## Call: ## lm(formula = sformula) ## Example: 2 lm("y~x") ## Call: ## lm(formula = "y~x")
- Добавление греческого символа в заголовок оси
- чтение текстового файла в строке R
- Как я могу распространять повторяющиеся измерения нескольких переменных в широкий формат?
- count количество строк в кадре данных в R на основе группы
- Как сгладить список в список без принуждения?
- Графические линии и групповая эстетика в ggplot2
- Гистограмма Overlay с кривой плотности
- Извлечение текстовых данных из файлов PDF
- Последовательность повторяющихся значений в R
- Форсировать векторное кодирование символов от «неизвестного» до «UTF-8» в R
- Импорт нескольких CSV-файлов в R
- Почему `` `` лучше, чем `подмножество`?
- Возврат кадра данных из функции
Как насчет eval(call("lm", sformula))
?
lm(sformula) #Call: #lm(formula = sformula) eval(call("lm", sformula)) #Call: #lm(formula = "y~x")
Вообще говоря, есть аргумент data
для lm
. Давай сделаем:
mydata <- data.frame(y = y, x = x) eval(call("lm", sformula, quote(mydata))) #Call: #lm(formula = "y~x", data = mydata)
Вышеуказанная комбинация call()
+ eval()
может быть заменена do.call()
:
do.call("lm", list(formula = sformula)) #Call: #lm(formula = "y~x") do.call("lm", list(formula = sformula, data = quote(mydata))) #Call: #lm(formula = "y~x", data = mydata)