Вы можете создать именованный вектор, vec
, где первый аргумент задает тип столбца, который вы хотите. Строка rep("", 3)
говорит, что я хочу три символьных столбца. Тогда вторым аргументом является вектор имен столбцов.
Используйте dplyr::bind_rows
, чтобы преобразовать это в таблицу с одной строкой. Затем [0, ]
выбирает ноль строк, оставляя его пустым.
С помощью этого метода вы можете легко контролировать тип данных для каждого столбца.
library(dplyr)
vec <- setNames(rep("", 3), letters[1:3])
bind_rows(vec)[0, ]
# A tibble: 0 x 3
# ... with 3 variables: a <chr>, b <chr>, c <chr>
Вы также можете использовать as_tibble
, еслиВы транспонируете названный вектор. Я предполагаю, что использую bind_rows
, потому что у меня обычно загружено dplyr
, но не tibble
.
library(tibble)
vec <- setNames(rep("", 3), letters[1:3])
as_tibble(t(vec))[0, ]
# A tibble: 0 x 3
# ... with 3 variables: a <chr>, b <chr>, c <chr>
Если вы знаете, что все столбцы относятся к одному типу (например, символ), вы можетесделать что-то вроде этого.
vec <- letters[1:3]
df <- bind_rows(setNames(rep("", length(vec)), vec))[0, ]