Я написал функцию:Как процитировать это в R
gener1 <- function(du){
nth <- paste0(paste0("dum", 1:du, " * ", "X", 1:du), collapse = " + ")
return(nth)
}
возвращает последовательность, как:
"dum1 * X1 + dum2 * X2 + dum3 * X3"
Теперь я хочу, чтобы использовать эту последовательность в следующей функции. Просто я могу просто скопировать и вставить, что:
S = quote(dum1 * X1 + dum2 * X2 + dum3 * X3)
Результат:
dum1 * X1 + dum2 * X2 + dum3 * X3
Он работает. Интересно, можно ли автоматизировать, что мне не нужно использовать «метод копирования пасты».
Конечный продукт, который я хочу добиться того, чтобы использовать S в следующей ситуации:
fo <- substitute(BH100 ~ S * ((1 - exp(-b2*TIME))/(1-exp(-b2*100)))^b3, list(S = S))
nls(fo, data = dane, start = list(b2 = 0.01, b3 = 1.1, X1 = 20, X2 = 20, X3 = 20))
Вот пример структуры данных, у меня есть
year T BH100 TIME dum1 dum2 dum3 dum4
1987 25 12.6 25 1 0 0 0
1990 28 14.9 28 1 0 0 0
1994 32 18.8 32 1 0 0 0
1983 21 13.4 21 0 1 0 0
1986 24 16.1 24 0 1 0 0
1990 28 19.6 28 0 1 0 0
1998 36 26.7 36 0 1 0 0
2002 40 27.8 40 0 1 0 0
1994 32 17.2 32 0 0 1 0
1998 36 19.4 36 0 0 1 0
2002 40 23.5 40 0 0 1 0
2008 46 26.3 46 0 0 1 0
2013 51 28.7 51 0 0 1 0
1985 23 14.6 23 0 0 0 1
1989 27 18.5 27 0 0 0 1
1990 28 19.2 28 0 0 0 1
Не очень ясно. Вы можете использовать его в «следующей функции». Возможно, вам следует предоставить немного больше контекста и описать то, что вы пытаетесь достичь. – nicola
Может быть 'S <- noquote (gener1 (3)); cat (S) '? [Duplicate/Relevant post] (http://stackoverflow.com/questions/13449233/r-how-to-send-a-text-string-containing-double-quotes-to-function) – zx8754
@ zx8754 Просто 'cat (gener1 (3)) 'достаточно – nicola