首页 > 解决方案 > 如何在 R 中以特定格式显示数据框

问题描述

我需要您的帮助/建议以特定格式在 R 中显示数据框。请在下面找到演示数据集。

d <-
data.frame(
year = c(1995, 1995, 1995, 1996, 1996, 1996, 1997, 1997, 1997),
Product_Name = c(
  "Table",
  "Chair",
  "Bed",
  "Table",
  "Chair",
  "Bed",
  "Table",
  "Chair",
  "Bed"
),
Product_desc = c("X", "X", "X", "Y", "Y", "Y", "Z", "Z", "Z"),
Cost = c(1, 2, 3, 4, 2, 3, 4, 5, 6)
)

数据框以这种格式显示。

   Product_Name Product_desc  year  Cost
   Table        X             1995     1
   Chair        X             1995     2
   Bed          X             1995     3
   Table        Y             1996     4
   Chair        Y             1996     2
   Bed          Y             1996     3
   Table        Z             1997     4
   Chair        Z             1997     5
   Bed          Z             1997     6

我希望数据框以这种格式显示。

   Product_Name Product_desc  year  Cost
   Table        X             1995     1
   Table        Y             1996     4
   Table        Z             1997     4
   Chair        X             1995     2
   Chair        Y             1996     2
   Chair        Z             1997     5
   Bed          X             1995     3
   Bed          Y             1996     3
   Bed          Z             1997     6

我无法以这种方式显示它。我面临的最大问题/挑战是关于专栏年份。我不知道如何让我的年份显示与上述格式相同。

请让我知道您的建议。

提前致谢。

大卫

标签: rdataframedplyr

解决方案


如果我理解正确,您希望按 Product_name 降序、Product_desc 升序对行进行排序,然后对列重新排序。这是一种方法

library(dplyr)

d %>% arrange(desc(Product_Name),Product_desc) %>% 
      select(Product_Name,Product_desc,year,Cost)

推荐阅读