Функции r: вывести все аргументы в виде строки. - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь объединить все мои аргументы в одну строку.В настоящее время у меня есть функция ниже, которая отлично работает, когда я передаю только текст.Но он ломается, когда я включаю в аргумент другую функцию R.

f <- function(x, y, z) {
  paste(substitute(x), substitute(y), substitute(z), sep = ",")
}

>f(hello, world)
[1] "hello,world,"

>f(hello=sum(x), world)
Error in f(hello = sum(x), world) : unused argument (hello = sum(x))

В идеале я хочу, чтобы он вывел «hello = sum (x), world»

Также естьЕсть ли способ расширить это до бесконечного числа аргументов?

Заранее спасибо.

1 Ответ

0 голосов
/ 03 декабря 2018

Может быть, что-то подобное будет работать для вас в общем случае

f <- function(...) {
  xx<-lapply(sys.call()[-1], deparse)
  paste0(ifelse(nchar(names(xx))>0, paste0(names(xx),"="), ""), unlist(xx), collapse=", ")
}
f(hello=sum(x), world)
# [1] "hello=sum(x), world"
...