Во-первых, у вас есть матрица, но, вероятно, вы хотите фрейм данных.Если вы сделаете тиббл, вы потеряете имена строк, в которых хранятся ваши письма, поэтому
as.data.frame(data) %>% rownames_to_column("id")
даст вам фрейм данных со столбцом id
букв.
Выхочу поместить эти данные в длинный формат, собрав все столбцы freq
.Затем я добавляю столбец, который дает тип наблюдения;в этом нет необходимости, но поскольку вы говорите, что хотите легко фильтровать один из двух типов - группы freq1
и т. д. или totfreq
- это удобная настройка, которую я часто использую.
library(tidyverse)
A <- c(4,4,4,4,4)
B <- c(1,2,3,4,4)
C <- c(1,2,4,4,4)
D <- c(3,2,4,1,4)
E <- c(4,4,4,4,5)
data <- data.frame(A,B,C,D,E)
data<- t(data)
colnames(data) = c("num1","freq1","freq2","freq3","totfreq")
data_long <- as.data.frame(data) %>%
rownames_to_column("id") %>%
gather(key = var, value = value, freq1:totfreq) %>%
mutate(type = ifelse(var == "totfreq", "total", "by_group"))
head(data_long)
#> id num1 var value type
#> 1 A 4 freq1 4 by_group
#> 2 B 1 freq1 2 by_group
#> 3 C 1 freq1 2 by_group
#> 4 D 3 freq1 2 by_group
#> 5 E 4 freq1 4 by_group
#> 6 A 4 freq2 4 by_group
С колонкой type
действительно легко фильтровать по типу для построения.Это позволит вам либо перенаправить отфильтрованный фрейм данных во что-то вроде ggplot
, либо дать вам столбец для использования для фасетирования или отображения на эстетику.
# for grouped bar chart
data_long %>% filter(type == "by_group")
#> id num1 var value type
#> 1 A 4 freq1 4 by_group
#> 2 B 1 freq1 2 by_group
#> 3 C 1 freq1 2 by_group
#> 4 D 3 freq1 2 by_group
#> 5 E 4 freq1 4 by_group
#> 6 A 4 freq2 4 by_group
#> 7 B 1 freq2 3 by_group
#> 8 C 1 freq2 4 by_group
#> 9 D 3 freq2 4 by_group
#> 10 E 4 freq2 4 by_group
#> 11 A 4 freq3 4 by_group
#> 12 B 1 freq3 4 by_group
#> 13 C 1 freq3 4 by_group
#> 14 D 3 freq3 1 by_group
#> 15 E 4 freq3 4 by_group
# for total freqs
data_long %>% filter(type == "total")
#> id num1 var value type
#> 1 A 4 totfreq 4 total
#> 2 B 1 totfreq 4 total
#> 3 C 1 totfreq 4 total
#> 4 D 3 totfreq 4 total
#> 5 E 4 totfreq 5 total
Создано 2018-05-17 пользователем Представить пакет (v0.2.0).