【发布时间】:2018-11-26 22:55:21
【问题描述】:
我从 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_Gesamt %>% gather(Type, Value) %>% group_by(Type) %>% summarise(Value = sum(Value, na.rm = TRUE))也许? -
@markus 谢谢,这行得通
-
@markus,对不起,如果我做错了,我是 stackoverflow 的新手,我将如何向 F4_Off 添加一列“age”(我知道 cbind ...)然后得到结果具有 3 列“年龄”、“类型”和“值”的集合,其中的计数按“年龄”和“类型”分组?(请让我知道这是否应该是它自己的问题,然后我将创建一个新的)
-
您可以通过多种方式添加列。使用来自
dplyr的F4_Off$age <- ...、mutate或来自tibble包的add_column(如果您更喜欢tidyverse解决方案)。我想这取决于age的来源。你最好用一个最小的、可重复的例子来问一个新问题。 ps 使用dput()分享您的数据。问候 -
@markus,谢谢