【问题标题】:How to display the dataframe in a particular format in R如何在 R 中以特定格式显示数据框
【发布时间】:2020-02-21 11:09:57
【问题描述】:

我需要您的帮助/建议才能以特定格式在 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

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

请告诉我您的建议。

提前致谢。

大卫

【问题讨论】:

  • 所以如果我理解的话,您想重新排序行并更改列的顺序吗?

标签: r dataframe dplyr


【解决方案1】:

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

library(dplyr)

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

【讨论】:

    【解决方案2】:

    我没有检查输出,希望它是正确的。

    df <- df[with(df, order(rev(Product_Name))), ]
    df <- data.table::setcolorder(df, c('Product_Name', 'Product_desc',  'year',  'Cost'))
    

    【讨论】:

      猜你喜欢
      • 2020-10-07
      • 2021-07-16
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多