2017-08-25 522 views
1

我有一个干净的tibble,如下所示:R:tibble移动列以行和名称列

df <- structure(list(created_week = c(31, 32, 33, 34), Rt_count = c(7, 
6, 5, 0), Cus_count = c(2, 1, 2, 1)), class = c("tbl_df", "tbl", 
"data.frame"), .Names = c("created_week", "Rt_count", "Cus_count" 
), row.names = c(NA, -4L)) 

我在看做与从碱T(),具有tibble作为结果和行从df $ created_week和他们的名字,列是Rt_count和Cus_count,必须命名。 我找不到一个简单而简单的方法。

谢谢你的帮助。

+0

我不知道我是否理解。如果Rt_count&Cus_count保留列,是否转置数据框?或者你只是想将第一列转换为行名?对于后者,请查看'tibble :: column_to_rownames' –

+0

@ Z.Lin column_to_rownames(tt,var =“toto”) 错误:未找到列'num2' – gabx

+0

您必须指定将哪一列转换为rowname。尝试'df%>%column_to_rownames(“created_week”)%>%as.data.frame()'? –

回答

1

转贴的答案我的意见......

为了创建DF $ created_week rownames而留下Rt_count & Cus_count栏目,你可以从tibble包使用column_to_rownames功能。

你会得到一个警告,在tibble设置行名字已经过时,但是这罚款,因为我们将其转换回data.frame:

library(dplyr); library(tibble) 

df %>% 
    column_to_rownames("created_week") %>% 
    as.data.frame() 

    Rt_count Cus_count 
31  7   2 
32  6   1 
33  5   2 
34  0   1 

编辑替代那并不是” t取决于tibble的功能:

df <- as.data.frame(df) 
rownames(df) <- df$created_week 
df$created_week <- NULL 
+1

我只是想补充这个会折旧的。请参阅https://github.com/tidyverse/tibble/issues/123了解更多信息 – gabx

+0

Darn,我刚刚在一个月前了解了该功能。好吧,将包括一个替代品,只使用基础包... –