如何将命名向量更改为保留名称的数据框?

How do I change a named vector to a data frame retaining the names?

执行函数后我有以下数据结构:

      A       B       C        D        E       
      92.08   90.68   54.09    92.87    97.40    

      F       G       H        I        J       ...       
      24.52   67.24   15.63    22.33    45.10   ...  

作为最终结果,我希望将数据放在一个简单的数据框中,其中字母作为行,值作为列。以下工作,虽然我很好奇这是否是最优雅的方式(?):

output <- data.frame(output)
output <- data.frame(rownames(output), rowSums(output))
colnames(output) <- c("Category", "Value")
output
output %>% arrange(desc(output))

如果您有更好的想法,请随时纠正我。 dplyr 解决方案表示赞赏。

谢谢!

正如@Axeman 在评论中所说,您有一个命名向量。将其转换为数据框的最简单方法是使用基础 R.

中的 stack-函数

一些示例数据:

output <- setNames(c(92.08,90.68,54.09,92.87,97.40), LETTERS[1:5])

看起来像:

> output
    A     B     C     D     E 
92.08 90.68 54.09 92.87 97.40

转换为数据帧:

df <- stack(output)

给出:

> df
  values ind
1  92.08   A
2  90.68   B
3  54.09   C
4  92.87   D
5  97.40   E

获取问题中指定的列名和列顺序:

df <- setNames(stack(output)[2:1], c('Category','Value'))

给出:

  Category Value
1        A 92.08
2        B 90.68
3        C 54.09
4        D 92.87
5        E 97.40