如何将没有任何col和行名称的表从矩阵转换为数据框

时间:2017-05-28 00:13:14

标签: r dataframe

我为我想要创建的矩阵编写了一个代码

tstp<-matrix(1:200, ncol = 4, byrow = TRUE)

然后我编写了这段代码来获取我所需的格式

write.table(tstp, row.names = FALSE, col.names = FALSE, quote = FALSE, sep = "\t")

我在这里展示前四行。 out就像那样

1   2   3   4
5   6   7   8
9   10  11  12
13  14  15  16

如果它的类是数据框,那么这是我的必需输出。所以我编写了一个代码将其转换为数据框,以

形式给出
> timestp<-data.frame(tstp)

并且代码的输出创建了不需要的列名和行号,如下所示。

> timestp
  X1 X2 X3 X4
1  1  2  3  4
2  5  6  7  8
3  9 10 11 12
4 13 14 15 16

它产生了我需要的课程

> class(timestp)
[1] "data.frame"

但我希望下面给出的输出类为data.frme

1   2   3   4
5   6   7   8
9   10  11  12
13  14  15  16

2 个答案:

答案 0 :(得分:2)

我们可以使用as.data.frame optional参数设置为TRUE

timestp <- as.data.frame(tstp, optional = TRUE)

colnames(df)
#NULL

答案 1 :(得分:1)

你可以这样做:

rownames(timestp) <- NULL
colnames(timestp) <- NULL

或者如果您只想排除行名称,请使用:

timestp<-data.frame(tstp, row.names = NULL)

但是,当您打印时,它将显示数字(作为索引,而不是名称)。请参阅&#34; Removing display of R row names from data frame&#34;

  

您已成功删除了rownames。如果没有rownames,print.data.frame方法只显示行号。

如果您想在打印时排除行号,那么这将有助于您:

print(timestp, row.names = FALSE)

这将是输出:

> print(head(timestp), row.names = FALSE)

 # 1  2  3  4
 # 5  6  7  8
 # 9 10 11 12
 # 13 14 15 16
 # 17 18 19 20
 # 21 22 23 24