1.创建一个空数据框
y <- data.frame()
2.将字符串向量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())
不是命名列的有效方法。我该如何解决这个问题? THX
答案 0 :(得分:140)
怎么样,
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)