Установка типа данных столбцов из файла CSV, состоящего только из заголовков

#r #dplyr

#r #dplyr

Вопрос:

 library(dplyr)
library(purrr)

tbl1 <- tibble(data.frame(
  a = c(1,2),
  b = c(3,4)
))

tbl2 <- c('a','b','c','d') %>% purrr::map_dfc(
  setNames, object = list(numeric()))
  

Я хочу добавить все строки tbl1 to tbl2 со столбцами, которые находятся в tbl2 , а не tbl1 в качестве NA . Таким образом, tbl будет выглядеть следующим образом:

 a b c  d
1 3 NA NA
2 4 NA NA
  

Как мне это сделать без необходимости вручную перечислять столбцы c и d ?

Комментарии:

1. Возможно bind_rows(tbl1,tbl2) %>% mutate(across(everything(),~as.character(.))) tidyverse , сначала загрузка!

Ответ №1:

  1. dplyr::bind_rows полезно для этого.
 > bind_rows(tbl1, tbl2)
# A tibble: 2 x 4
      a     b     c     d
  <dbl> <dbl> <dbl> <dbl>
1     1     3    NA    NA
2     2     4    NA    NA
  
  1. Вы можете определить tbl_df объект непосредственно с tibble() помощью . Вам не нужно этого делать tibble(data.frame(<values>)) . A tbl_df — это, по сути, просто data.frame с необычным методом печати и некоторой (внешней) поддержкой группировки.
  2. Аналогично, вы можете определить пустой tbl напрямую: tibble(a = numeric(), b = numeric(), c = numeric(), d = numeric())

Комментарии:

1. вы имеете в виду bind_rows ?

Ответ №2:

Другой вариант rbindlist

 library(data.table)
rbindlist(list(tbl1, tbl2))