1. ホーム
  2. r

[解決済み] 文字列ベクトルを代入して、列名を持つ空のデータフレームを作成する?重複

2022-03-13 13:53:33

質問

  1. 空のデータフレームを作成します。
y <- data.frame()

  1. 文字列ベクトルxをyの列名として代入する。
    x <- c("name", "age", "gender")
    colnames(y) <- x

結果

のエラー colnames<- ( *tmp* , value = c("name", "age", "gender")) : 'names' 属性 [3] は、ベクトル [0] と同じ長さでなければなりません。

実は、xの長さは動的なので

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

は、カラムの名前を付けるための効率的な方法ではありません。どうすればこの問題を解決できますか?

どのように解決するのですか?

いかがでしょうか。

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)

または

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