我在编写一个...
作为参数然后lapply(..., length)
在函数体中的函数时遇到问题。
目前,我的代码是(重要的部分在第 2 行):
paste1 <- function(..., sep = " ", collapse = NULL) {
if(isTRUE(unique(as.logical(lapply(X = ..., FUN = length)))))
if(length(sep)) paste(..., sep = sep, collapse = collapse)
else paste0(..., collapse = collapse)
else
""
}
麻烦是lapply(X = ..., FUN = length)
部分。如果我在参数中有多个元素...
,它会尝试length
一次应用于所有参数,这会引发错误,因为length
只有一个参数。
我不能使用类似的东西,lapply(X = as.list(...), FUN = length)
因为...
可能的某些元素NULL
和列表表示...
将丢失信息。
我需要做的就是应用length
到各个元素,...
而不是先强制它们。