に応じて、列に文字を割り当てて、私は次のように多くのデータフレームを持っている:rは値
count value
1 0 7
2 1 230
3 2 5
私は、「値」列に応じて色を割り当てるために列を追加します。最大のものは赤、2番目のものは青、最低のものは緑でなければなりません。
count value color
1 0 7 blue
2 1 230 red
3 2 5 green
Rで簡単に行う方法はありますか?ありがとう!
に応じて、列に文字を割り当てて、私は次のように多くのデータフレームを持っている:rは値
count value
1 0 7
2 1 230
3 2 5
私は、「値」列に応じて色を割り当てるために列を追加します。最大のものは赤、2番目のものは青、最低のものは緑でなければなりません。
count value color
1 0 7 blue
2 1 230 red
3 2 5 green
Rで簡単に行う方法はありますか?ありがとう!
私たちは、 '色'
df1$color <- c("green", "blue", "red")[rank(df1$value)]
また、(楽しい)' c( "green"、 "blue"、 "red")[order(order(df1 $ value))] '。 – lmo
あなたは私たちがdplyr::case_when
を使用することができますdplyr
パッケージ
df <- data.frame(count = c(0,1,2), value = c(7,230,5))
df <- df %>%
mutate(color = ifelse(value == min(value), "green", ifelse(value == max(value), "red", "blue")))
'dplyr'を使って新しい列を割り当てるのと同じように見えます。 – Wen
を使用することができます。
dt <- data.frame(count = c(0, 1, 2), value = c(7, 230, 5))
library(dplyr)
dt2 <- dt %>%
mutate(color = case_when(
value == max(value) ~ "red",
value == min(value) ~ "green",
TRUE ~ "blue"
))
又は第一Rank
列を作成し、Rank
列に基づいて値を割り当てます。
dt2 <- dt %>%
mutate(Rank = dense_rank(value)) %>%
mutate(color = case_when(
Rank == 1 ~ "green",
Rank == 2 ~ "blue",
Rank == 3 ~ "Red"
)) %>%
select(-Rank)
'rank'すなわち' C( "緑"、 "青"、 "赤")[ランク(DF1で試しを作成する
base R
からrank
を使用することができます$ value)] ' – akrunありがとう、akrun!あなたのソリューションはとてもシンプルでエレガントです。 – l0110