通过分配字符串向量创建具有列名的空数据框? [复制]

Posted

技术标签:

【中文标题】通过分配字符串向量创建具有列名的空数据框? [复制]【英文标题】:Create empty data frame with column names by assigning a string vector? [duplicate] 【发布时间】:2015-12-19 03:52:23 【问题描述】:
    创建一个空数据框:
y <- data.frame()
    将字符串向量 x 分配给 y 作为其列名:
    x <- c("name", "age", "gender")
    colnames(y) <- x

结果:

colnames&lt;-(*tmp*, value = c("name", "age", "gender")) 中的错误: 'names' 属性 [3] 必须与向量 [0] 长度相同

其实x的长度是动态的,所以

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

不是命名列的有效方法。我该如何解决这个问题?

【问题讨论】:

如果你想创建一个带有动态名称(变量中的列名)的空data.frame,这会有所帮助:names 【参考方案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)

或者

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

【讨论】:

你好,你有一个简单的方法来添加列(类型 = 字符)列名是 ``` new_col_names @DDchen 如果你有一个数据框df,这应该可以工作df[new_col_names] &lt;- NA_character_

以上是关于通过分配字符串向量创建具有列名的空数据框? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在熊猫数据框中仅填充选定列的空值? [复制]

在附加的数据框中添加列名? [复制]

R中 如何将数据框中的空值显示为NA

如何在 R 中将行添加到带有标题的空数据帧? [复制]

如何将命名向量作为行添加到数据框中,根据列名顺序重新排序?

Mysql中具有相同列名的表之间的数据复制