dplyr :: bind_rows (...) и do.call (rbind, ...) для списков символов - PullRequest
0 голосов
/ 08 мая 2019

Предположим, у меня есть следующие фреймы данных и вектор символов имен:

x <- data.frame(val = 1)
y <- data.frame(val = 2)
nms <- c("x", "y")

Я хочу просто связать строки вместе фреймов данных.Я могу сделать это с do.call и rbind без проблем:

library(dplyr)

do.call(rbind, syms(nms))
#  val
#1   1
#2   2

Однако, если я пытаюсь dplyr::bind_rows, я получаю странную ошибку, сообщающую мне, что аргумент 1 должен быть событием фрейма данных, хотя этофрейм данных:

bind_rows(syms(nms))
#Error: Argument 1 must be a data frame or a named atomic vector, not a data.frame

Буду признателен, если кто-нибудь скажет , почему это происходит.

1 Ответ

1 голос
/ 08 мая 2019

Мы можем использовать mget, чтобы вернуть наборы данных в list, а затем сделать bind_rows

library(dplyr)
mget(nms) %>%
   bind_rows
#  val
#1   1
#2   2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...