Вызов sep = "" внутри функции - PullRequest
0 голосов
/ 02 апреля 2020

Итак, я хочу заставить аргумент sep = "" работать в do.call (вставить) внутри этого.

fun <- function(x, sep=" "){
  stopifnot(is.list(x))
  k <- length(x)
  n <- lengths(x)
  stopifnot(length(unique(n))==1)
  do.call(paste, c(x, sep))
}

К сожалению, этот не работает, и я не могу найти какой-либо похожие топи c. Спасибо за помощь:)

1 Ответ

0 голосов
/ 02 апреля 2020

Я думаю, вам может понадобиться sep = sep в пределах do.call, поскольку lhs sep для paste, а rhs sep является входным аргументом функции fun, то есть

fun <- function(x, sep=" "){
  stopifnot(is.list(x))
  k <- length(x)
  n <- lengths(x)
  stopifnot(length(unique(n))==1)
  do.call(paste, c(x, list(sep=sep)))
}

Пример

> fun(as.list(seq(3)),"-")
[1] "1-2-3"
...