Свяжите вместе несколько фреймов данных - PullRequest
0 голосов
/ 06 мая 2020

Я хотел бы связать несколько фреймов данных вместе. Эти фреймы данных являются данными из SQL. Иногда некоторые фреймы данных могут быть пустыми.

Код:

combined = rbind(df1,df2,df3,df4)

Если один из фреймов данных пуст, он возвращает ошибку компиляции. Как выполнить привязку, даже если она пуста? Или есть лучший способ справиться с этим?

Ответы [ 3 ]

3 голосов
/ 06 мая 2020

Вы можете использовать do.call и преобразовать фреймы данных в список

do.call(rbind, list(df1, df2, df3, df4))
1 голос
/ 06 мая 2020

data.table предлагает функцию rbindlist, которая работает аналогично (но более эффективно), чем do.call - rbind комбинированный

library(data.table)
rbindlist(lapply(setDT, list(df1,df2,df3,df4)))

Вы можете добавить use.names = TRUE и fill = TRUE, если порядок ваших столбцов во всех столбцах не одинаков.

0 голосов
/ 06 мая 2020

Мы можем использовать bind_rows

library(dplyr)
bind_rows(mget(ls(pattern = '^df\\d+$'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...