У меня есть функция, и я хотел бы добавить две переменные в каждую запись в моем списке.Я пробовал несколько способов, но безуспешно.
objs <- mget(ls("package:base"), inherits = TRUE)
funs <- Filter(is.function, objs)
funs <- funs[1:3]
ArgLength <- function(functions){
out <- vector(mode = "list", length = length(functions))
for (i in seq_along(functions)) {
name <- names(functions)[i]
names(out)[[i]] <- name
out[[i]] <- c(length(formals(args(functions[[name]]))), is.primitive(functions[[name]]))
}
out
}
ArgLength(funs)
Я также пытался использовать.
names(out)[[i]] <- name
out[[i]][1] <- length(formals(args(functions[[name]])))
out[[i]][2] <- is.primitive(functions[[name]]))
В обоих случаях я получаю по одному предмету для каждой записи.в моем списке.
В итоге я получаю это.
$`-`
[1] 2 1
$`-.Date`
[1] 2 0
$`-.POSIXt`
[1] 2 0
И я бы хотел получить это.
$`-`
[1] 2
[2] 1
$`-.Date`
[1] 2
[2] 0
$`-.POSIXt`
[1] 2
[2] 0
В комментарии я обновилЦикл для включения
out[[i]] <- list( length = length(formals(args(functions[[name]]))),
is.prim = is.primitive(functions[[name]]))
names(out)[[i]] <- name
Я получаю это как пример вывода.
$sprintf
$sprintf$length
[1] 2
$sprintf$is.prim
[1] FALSE
Это вывод str(ArgLength(funs))
List of 3
$ - :List of 1
..$ : int [1:2] 2 1
$ -.Date :List of 1
..$ : int [1:2] 2 0
$ -.POSIXt:List of 1
..$ : int [1:2] 2 0