Я пытаюсь собрать список из вектора и строки фрейма данных.Список будет передан 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).