通过指定一个字符串向量来创建带有列名的空数据框架?

  1. 创建一个空的数据框架:
y <- data.frame()
  1. 将字符串向量 x 赋给 y 作为其列名:
    x <- c("name", "age", "gender")
colnames(y) <- x

结果:

colnames<-中的错误(*tmp*,value = c (“名称”,“年龄”,“性别”)) : ‘ names’属性[3]的长度必须与向量[0]的长度相同

实际上,x 长度是动态的,所以

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

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

401034 次浏览

这个怎么样:

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"))))