Создать пустой фрейм данных с именами столбцов, назначив вектор строки?

1. создать пустой фрейм данных

y <- data.frame()

2.assign x, вектор строки, y в качестве имен столбцов

x <- c("name", "age", "gender")
colnames(y) <- x

Результат:

Error in `colnames<-`(`*tmp*`, value = c("name", "age", "gender")) : 
  'names' attribute [3] must be the same length as the vector [0]

Фактически длина x динамическая, поэтому

y <- data.frame(name=character(), age=numeric(), gender=logical())

не является эффективным способом для обозначения столбца. Как я могу решить проблему? ТНХ

Ответ 1

Как насчет,

df <- data.frame(matrix(ncol = 3, nrow = 0))
x <- c("name", "age", "gender")
colnames(df) <- x

Чтобы выполнить все эти операции в одном слое

setNames(data.frame(matrix(ncol = 3, nrow = 0)), c("name", "age", "gender"))

#[1] name   age    gender
#<0 rows> (or 0-length row.names)