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