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

ls <- list(df1 = data.frame(col1 = c(1, 2)), df2 = data.frame(col1 = c(3, 4)))
do.call(rbind.data.frame, ls)

Однако это приводит к фрейму данных с именами строк:

      col1
df1.1    1
df1.2    2
df2.1    3
df2.2    4

Я также пробовал do.call(rbind.data.frame(make.row.names = F), ls). Но это меня заработало:

Ошибка в do.call (rbind.data.frame (make.row.names = F), ls): «что» должно быть функцией или строкой символов

РЕДАКТИРОВАТЬ: Если не появится простое решение, я удалю имена строк на втором этапе с помощью rownames(df_goal) <- c(0).

1
Joe 22 Сен 2018 в 23:46

1 ответ

Лучший ответ

dplyr::bind_rows(ls) должен дать ожидаемый результат.

Вариант 2: Reduce(rbind.data.frame, ls)

Вариант 3 (для полноты) - предложен @Henrik: do.call(rbind, c(ls, make.row.names = FALSE))

1
nghauran 22 Сен 2018 в 21:03