-1
別の列(averageDelay)の値の上位10%(averageDelay)に文字 'A'が割り当てられ、次の25% 'B'が残りの ' C '。私はcase_when関数を使ってそのようにすることができると思ったが、それをやり遂げる方法はわからなかった。何か案は?ここでcase_whenを使用して列をランク付けする方法は?
別の列(averageDelay)の値の上位10%(averageDelay)に文字 'A'が割り当てられ、次の25% 'B'が残りの ' C '。私はcase_when関数を使ってそのようにすることができると思ったが、それをやり遂げる方法はわからなかった。何か案は?ここでcase_whenを使用して列をランク付けする方法は?
は、おもちゃのデータフレームとソリューションです:
library(tidyverse)
df <- tibble(
averageDelay = rnorm(10)
)
df %>%
mutate(
delayGrade = case_when(
averageDelay < quantile(averageDelay, .1) ~ "A",
averageDelay < quantile(averageDelay, .35) ~ "B",
TRUE ~ "C"
)
) %>%
arrange(averageDelay) # Not necissary, but improves readability
# A tibble: 10 x 2
averageDelay delayGrade
<dbl> <chr>
1 -1.57878473 A
2 -1.00129022 B
3 -0.34245100 B
4 -0.08652020 B
5 -0.05240453 C
6 0.15732711 C
7 0.21509389 C
8 0.34202367 C
9 0.90296373 C
10 0.90820894 C
はあなたに感謝します!それは完全に動作します – Saskewan
@サスケワンあなたは大歓迎です。チェックマークをクリックして受け付けますか? –