Это даст вам представление о том, как поместить его в аккуратный формат, и начнете отвечать на вопросы.
library(tidyverse)
df <- data.frame(stringsAsFactors=FALSE,
name = c("paul", "john", "mike", "jim"),
walks = c(10L, 9L, 6L, 7L),
runs = c(6L, 5L, 4L, 10L),
cycles = c(2L, 5L, 8L, 9L),
drives = c(2L, 3L, 4L, 5L),
flys = c(2L, 6L, 8L, 9L)
)
df
df <- df %>% gather(key = transport, value = "freq", walks:flys)
df
df %>% filter(name == "jim") %>%
group_by(transport) %>%
arrange(desc(freq))
, который дает вам таблицу вывода, например:
# A tibble: 5 x 3
# Groups: transport [5]
name transport freq
<chr> <chr> <int>
1 jim runs 10
2 jim cycles 9
3 jim flys 9
4 jim walks 7
5 jim drives 5
который позволяет вам ответить на вопрос 1.
Обратите внимание, что gather()
используется для создания данных в формате Tidy, например:
name transport freq
1 paul walks 10
2 john walks 9
3 mike walks 6
4 jim walks 7
5 paul runs 6
Это похоже на вашу домашнюю работу, так что, вероятно, лучшедля вас самим придумать все остальное, но это поможет вам на правильном пути.
Найдите нужные вам функции в dplyr.