将数据帧的特定单元格转换为R中的表格

时间:2015-12-03 12:51:38

标签: r shiny reshape melt

我有一个包含140个变量的数据框(从RDS文件中读取)。我已经将其中的3个子集化了。但该子集只有一行有三个列变量。我必须将它作为一个表格呈现并制作条形图。子集数据框看起来像这样。

HomeCondn_Good    HomeCondn_Livabl    HomeCondn_Dilapdtd
       (dbl)            (dbl)              (dbl)
1      65.9             29.7                4.3

可重复的例子如下:

structure(list(HomeCondn_Good = 65.9, HomeCondn_Livabl = 29.7, 
                HomeCondn_Dilapdtd = 4.3), .Names = c("HomeCondn_Good", "HomeCondn_Livabl", 
                                                      "HomeCondn_Dilapdtd"), class = c("tbl_df", "data.frame"), row.names = c(NA, 
                                                                                                                              -1L))

我想将其转换为以下格式的表格:

   Parameter           Proportion
1 HomeCondn_Good        65.9
2 HomeCondn_Livabl      29.7
3 HomeCondn_Dilapdtd     4.3

我尝试了重塑包装并使用了熔化功能。 (假设' home'是对象的名称)

Home <- melt(Home)
names(Home)[1] <- "Parameter"
names(Home)[2] <- "Proportion"

我收到以下警告:

  

没有id变量;使用all作为度量变量

我在Shiny中实现了这一点,当我得到所需的表输出时,这显然会影响程序的其他组件,这些组件要么不提供输出,要么不提供渲染。有人可以帮我理解这个吗?

1 个答案:

答案 0 :(得分:0)

我们可以使用gather

中的tidyr
library(tidyr)
gather(df1, Parameter, Proportion)
#              Parameter Proportion
#               (fctr)      (dbl)
#1     HomeCondn_Good       65.9
#2   HomeCondn_Livabl       29.7
#3 HomeCondn_Dilapdtd        4.3