Вы можете, делая некрасивые вещи с помощью deparse и gsub:
expr1 <- parse(text = text1)
attributes(expr1) <- NULL
(text3 <- paste(deparse(expr1), collapse=""))
#rm whitespace etc
(text3 <- gsub("\\)$", "", gsub("^expression\\(", "",
gsub("[[:space:]][[:space:]]+", " ", text3))))
nchar(text3)
Более подробно, вы можете использовать deparse
для создания строк из формул и использовать эту функцию:
safeDeparse <- function(expr){
ret <- paste(deparse(expr), collapse="")
#rm whitespace
gsub("[[:space:]][[:space:]]+", " ", ret)
}
Чтобы обойти глупое ограничение длины, которое заставляет разноса добавлять разрывы строк и разбивать одно выражение на множество строк, сравните:
(f <- formula(paste("X ~", paste(rep(letters, 10), collapse=" + "))))
deparse(f)
safeDeparse(f)