【问题标题】:Converting specific cells of data frame to table in R将数据框的特定单元格转换为R中的表格
【发布时间】:2016-03-08 02:25:45
【问题描述】:

我有一个包含 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

我尝试了 reshape 包并使用了 melt 功能。 (假设 'home' 是对象的名称)

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

我收到以下警告:

没有 id 变量;全部用作度量变量

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

【问题讨论】:

    标签: r shiny reshape melt


    【解决方案1】:

    我们可以从tidyr使用gather

    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
    

    【讨论】:

    • 我很抱歉 akrun....我在melt 练习之后粘贴了错误的可重现代码....现在更正....当我尝试融化时会出现警告消息。原来的子集df没有Parameter和Proportion的选项,因为它们后来被重命名了。
    • @LeArNr 我刚刚复制/粘贴了您发布的dput,它给了我相同的输出,即预期输出
    • 非常感谢,再次为混乱感到抱歉...不知道您也可以整齐地传递变量名...它可以工作...是否可以抑制@ 987654326@ 和 '(dbl)` 消息...
    • @LeArNr 这是 tbl_df 的默认结构。如果您转换为data.frame,它将消失library(dplyr);gather(df1, Parameter, Proportion) %&gt;% as.data.frame()
    • 再次感谢 akrun...无需删除 fctr 和 dbl 标签...它们不会以闪亮的形式出现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多