我有以下資料框和基于它的堆積面積圖
df <- data.frame (Year = c("2010", "2010", "2010", "2010", "2011","2011","2011","2011","2012","2012","2012","2012","2013","2013","2013","2013"),
Sales = c(100000000,200000000,50000000,500000000,400000000,200000000,400000000,145000000,100000000,456000000,345000000,321000000,100000000,200000000,250000000,400000000),
Category = c("A", "B", "C", "D","A", "B", "C", "D","A", "B", "C", "D","A", "B", "C", "D"))
df$Year <- as.integer(df$Year)
df %>%
ggplot(aes(x = Year, y = Sales, fill = Category))
geom_area() scale_x_continuous(breaks=2010:2013)
現在我想以某種方式撰寫以下代碼:
- 如果
mean(df$Sales)> 1 000 000 那么df$Sales/1 000 000 - 如果
mean(df$Sales)> 1 000 & <1 000 000 那么df$Sales/1 000 - 否則什么都不做
在我想在 ggplot y 軸上反映這一點之后:
- 如果滿足第一個條件,則將 y 軸標記為“萬億銷售額”
- 如果滿足第二個條件,則將 y 軸標記為“十億銷售額”否則
- 將 y 軸標記為“百萬銷售額”
uj5u.com熱心網友回復:
這個 if/else 陳述句不會起到作用嗎?
library(tidyverse)
y_label = "Sales in Million"
if(mean(df$Sales)>1000000){
df$Sales2 = df$Sales/1000000
y_label = "Sales in Billion"
} else if(mean(df$Sales)>1000){
df$Sales2 = df$Sales/1000
y_label = "Sales in Trillion"
}
df %>%
ggplot(aes(x = Year, y = Sales2, fill = Category))
geom_area() scale_x_continuous(breaks=2010:2013)
ylab(y_label)

由reprex 包于 2022-04-30 創建(v2.0.1)
PS: 1 用于使用示例資料集進行良好的問題格式化
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/468584.html
