Как добавить элемент в качестве дополнительного элемента в списке? - PullRequest
1 голос
/ 16 апреля 2019

У меня есть функция, и я хотел бы добавить две переменные в каждую запись в моем списке.Я пробовал несколько способов, но безуспешно.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...