通过分配字符串向量使用列名创建空数据框? [英] Create empty data frame with column names by assigning a string vector?
本文介绍了通过分配字符串向量使用列名创建空数据框?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
- 创建一个空数据框:
y < ;-data.frame()
- 分配x ,一个字符串向量,以y作为其列名:
x<-c( 姓名,年龄,性别)
姓氏(y)<-x
结果:
`colnames< -`(`* tmp *`,value = c( name , age, gender)):
'names'属性[3]的长度必须与向量[0]
实际上,x的长度是动态的,所以
y <- .frame(名称=字符(),年龄=数字(),性别=逻辑())
这不是命名列的有效方法。我该如何解决这个问题?
解决方案
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 ,年龄,性别))
#[1]姓名年龄性别
#< 0行> (或长度为0的row.names)
Or
data.frame(matrix(ncol = 3,nrow = 0,dimnames = list(NULL,c( name, age, gender))))
- Create an empty data frame:
y <- data.frame()
- Assign x, a string vector, to y as its column names:
x <- c("name", "age", "gender")
colnames(y) <- x
Result:
Error in `colnames<-`(`*tmp*`, value = c("name", "age", "gender")) :
'names' attribute [3] must be the same length as the vector [0]
Actually, the x length is dynamic, so
y <- data.frame(name=character(), age=numeric(), gender=logical())
is not an efficient way to name the column. How can I solve the problem?
解决方案
How about,
df <- data.frame(matrix(ncol = 3, nrow = 0))
x <- c("name", "age", "gender")
colnames(df) <- x
To do all this operations in one-liner
setNames(data.frame(matrix(ncol = 3, nrow = 0)), c("name", "age", "gender"))
#[1] name age gender
#<0 rows> (or 0-length row.names)
Or
data.frame(matrix(ncol=3,nrow=0, dimnames=list(NULL, c("name", "age", "gender"))))
这篇关于通过分配字符串向量使用列名创建空数据框?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文