R:tibble将列移动到行和名称列

时间:2017-08-25 09:31:43

标签: r transpose tibble

我有一个干净的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))

我正在寻找与base相同的t(),结果为tibble,df $ created_week中的行及其名称,列为Rt_count和Cus_count,必须命名。 我无法找到一种简单易行的方法。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

将我的评论重新发布为答案......

为了从df $ created_week创建rownames,同时保留Rt_count&amp; Cus_count为列,您可以使用column_to_rownames包中的tibble函数。

您将收到一条警告,即不建议在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

编辑以寻找不依赖tibble功能的替代方案:

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