使用as.data.frame函数为数据框指定名称

时间:2017-03-28 10:13:37

标签: r dataframe

我正在尝试将矩阵转换为数据框,并将名称分配到一行中。

当我使用?as.data.frame时,有一个名为col.names的参数似乎对我不起作用,我做错了吗?

as.data.frame(matrix(c(1:4), nrow=2), col.names=c("a","b"))

输出:

   V1 V2  
1  1  3  
2  2  4  

预期产出:

   a  b  
1  1  3  
2  2  4  

我知道我可以稍后用`colnames(matrix)= c(“a,”b)分配它,但我只是想知道是否可以在一行中完成它。 (

2 个答案:

答案 0 :(得分:6)

我们可以在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

在OP代码中,matrix输出没有任何列名,因此as.data.frame创建列名称为' V1',& #39; V2'默认情况下。对于col.names as.data.frameclass参数不是matrix,所以它没有任何效果

如果我们引用?as.data.frame

的文档
  

类'矩阵'

的S3方法      

as.data.frame(x,row.names = NULL,optional = FALSE,...,                 stringsAsFactors = default.stringsAsFactors())

答案 1 :(得分:1)

我知道这是一个老问题,但是:

bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell 不是原始海报想要的“一行”中的解决方案,而只是使用管道?

一切顺利, 帕特里克

相关问题