我试图将矩阵转换为数据框,并在一行中分配名称.
正如我所使用的那样,?as.data.frame
有一个参数col.names
对我来说似乎不起作用,我做错了吗?
as.data.frame(matrix(c(1:4), nrow=2), col.names=c("a","b"))
Run Code Online (Sandbox Code Playgroud)
输出:
V1 V2
1 1 3
2 2 4
Run Code Online (Sandbox Code Playgroud)
预期产出:
a b
1 1 3
2 2 4
Run Code Online (Sandbox Code Playgroud)
我知道我可以稍后用`colnames(matrix)= c("a,"b)分配它,但我只是想知道是否可以在一行中完成它.(
我们可以使用dimnames
参数,matrix
这将在转换为时以列名返回data.frame
as.data.frame(matrix(1:4, nrow=2, dimnames = list(NULL, c("a", "b"))))
# a b
#1 1 3
#2 2 4
Run Code Online (Sandbox Code Playgroud)
在OP的代码中,matrix
输出没有任何列名,因此as.data.frame
默认情况下将列名称创建为"V1","V2".这个col.names
论点不as.data.frame
适合class
matrix
,所以它没有任何效果
如果我们引用文档 ?as.data.frame
类'矩阵'的S3方法
as.data.frame(x,row.names = NULL,optional = FALSE,...,stringsAsFactors = default.stringsAsFactors())