将 tibble 转换为带有列标题的数据框

xBa*_*rns 11 r dataframe tibble

我有一个像这样导入的 Excel 工作表中的数据:

F4_Off <- readxl::read_xlsx("myExcel.xlsx", sheet = "Offline", col_names = TRUE, range = "I1:L285")
F4_Off

F4_On <- readxl::read_xlsx("myExcel.xlsx", sheet = "Online", col_names = TRUE, range = "J1:M68")
F4_On
Run Code Online (Sandbox Code Playgroud)

这是结合使用:

F4_Gesamt <- rbind(F4_Off, F4_On)
Run Code Online (Sandbox Code Playgroud)

数据如下所示:

A tibble: 351 x 4
    nein Smartphone `Computer / Laptop / Tablet` `keine Angabe`
   <dbl>      <dbl>                        <dbl>          <dbl>
 1   NA         NA                            1.             NA
 2   NA          1.                          NA              NA
 3   NA          1.                          NA              NA
 4   NA          1.                          NA              NA
 5   NA          1.                           1.             NA
 6   NA          1.                           1.             NA
 7   NA          1.                           1.             NA
 8   NA          1.                          NA              NA
 9   NA         NA                            1.             NA
10    1.        NA                           NA              NA
Run Code Online (Sandbox Code Playgroud)

实际上,我希望对每列进行总结(总结起来,数“1”)并转换成这样的表格:

    Type                                    Value
    <chr>                                   <dbl>
1   nein                                    162
2   Smartphone                              120
3   `Computer / Laptop / Tablet`            93
4   `keine Angabe`                          16
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式进行总结:

F4_Gesamt_sum <- colSums(F4_Gesamt, na.rm = TRUE, dims = 1)
Run Code Online (Sandbox Code Playgroud)

然后它看起来像这样:

                   nein                 Smartphone Computer / Laptop / Tablet               keine Angabe 
                    162                        120                         93                         16 
Run Code Online (Sandbox Code Playgroud)

现在:

str(F4_Gesamt_sum)
Run Code Online (Sandbox Code Playgroud)

给出:

Named num [1:4] 162 120 93 16
 - attr(*, "names")= chr [1:4] "nein" "Smartphone" "Computer / Laptop / Tablet" "keine Angabe"
Run Code Online (Sandbox Code Playgroud)

这就是我现在连续几天惨遭失败的地方,我如何让它看起来像是我在上面“伪造”了它?

最后,我想将这些数据提供给 ggplot 并制作一个漂亮的条形图。

leb*_*nok 18

尝试

as.data.frame(F4_Gesamt_sum)
Run Code Online (Sandbox Code Playgroud)

或者

(function(x)data.frame(Type=names(x), Value=x))(F4_gesamt_sum)
Run Code Online (Sandbox Code Playgroud)