我有一份从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
这是通过以下方式组合的:
F4_Gesamt <- rbind(F4_Off, F4_On)
数据看起来像这样:
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
实际上,我希望这可以按列汇总(求和,计算“1.”),并转化为如下表格的形式:
Type Value
<chr> <dbl>
1 nein 162
2 Smartphone 120
3 `Computer / Laptop / Tablet` 93
4 `keine Angabe` 16
我可以通过以下方式实现总结:
我可以通过以下方式实现总结:
F4_Gesamt_sum <- colSums(F4_Gesamt, na.rm = TRUE, dims = 1)
那么它就会像这样:
nein Smartphone Computer / Laptop / Tablet keine Angabe
162 120 93 16
现在:
str(F4_Gesamt_sum)
提供:
Named num [1:4] 162 120 93 16
- attr(*, "names")= chr [1:4] "nein" "Smartphone" "Computer / Laptop / Tablet" "keine Angabe"
这是我过去几天一直失败的关键点,如何让它看起来像我上面“伪造”的那样?
最终,我想将这些数据提供给ggplot,并制作一个漂亮的条形图。
F4_Off$age <- ...
,dplyr
中的mutate
或tibble
包中的add_column
(如果你更喜欢tidyverse
解决方案)。我猜这取决于age
来自哪里。你最好提出一个具有最小可重现性的示例来询问。附言:使用dput()
共享你的数据。祝好! - markus