Объединить вектор и одну строку фрейма данных в список - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь собрать список из вектора и строки фрейма данных.Список будет передан do.call() в качестве аргументов функции.Если вектор имеет длину 1, нет проблем.

tbl <- tibble::tibble(a = 1:4,
              b = letters[1:4])

vec <- 1
works <- c(avec = vec, as.list(tbl[1,]))
testit <- function(avec, a, b){
  length(avec) + length(a) + length(b)
}
do.call(testit, works)
#> [1] 3

Но он также должен работать с более длинными векторами

vec <- 1:2 
broken <- c(avec = vec, as.list(tbl[2,]))# breaks apart avec
do.call(testit, broken)
#> Error in (function (avec, a, b) : unused arguments (avec1 = 1, avec2 = 2)

toomany <- list(avec = vec, as.list(tbl[2,]))#too many layers
do.call(testit, toomany)
#> Error in (function (avec, a, b) : argument "b" is missing, with no default


#what I want:
whatIwant <- list(avec = 1:2, a = 2, b = "b")
do.call(testit, whatIwant)
#> [1] 4

Неважно, если фрейм данных, и я хочурешение для работы как с таблицами, так и с данными.Нужно ли собирать список в текст и анализировать его?Я что-то упустил.Создано в 2019-03-01 пакетом Представление (v0.2.0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...