3

パッケージformattableを使用して、フォーマットされたテーブルを生成しています。素敵なリソースFormatting tables in Rを見つけました。ただし、ここでの矢印の書式設定の例は、特定の列のみに基づいています。

私の要件は次のとおりです。列 A と列 B の異なる都市から持っているとします。ここで、A には「木の数」と「汚染」の 2 つのレベルの要因があり、B はこれらの YoY の変化率です。したがって、列 A の値が「木の数」であるために増加している場合 (正であるため)、正の緑の矢印で列 B をフォーマットし、汚染が逆の場合に減少している場合は赤でフォーマットしたいと考えています。

リンク自体の例 (クレジット: Markus Gesmann ) を例にとると、変化が <0 であっても IBM の場合は、正の緑色の矢印を表示したいとします。

library(formattable)
DF <- data.frame(Ticker=c("", "", "", "IBM", "AAPL", "MSFT"),
             Name=c("Dow Jones", "S&P 500", "Technology", 
                    "IBM", "Apple", "Microsoft"),
             Value=accounting(c(15988.08, 1880.33, NA, 
                                130.00, 97.05, 50.99)),
             Change=percent(c(-0.0239, -0.0216, 0.021, 
                              -0.0219, -0.0248, -0.0399)))
DF
##   Ticker       Name     Value Change
## 1         Dow Jones 15,988.08 -2.39%
## 2           S&P 500  1,880.33 -2.16%
## 3        Technology        NA  2.10%
## 4    IBM        IBM    130.00 -2.19%
## 5   AAPL      Apple     97.05 -2.48%
## 6   MSFT  Microsoft     50.99 -3.99%
formattable(DF, list(
  Name=formatter(
    "span",
    style = x ~ ifelse(x == "Technology", 
                       style(font.weight = "bold"), NA)),
  Value = color_tile("white", "orange"),
  Change = formatter(
    "span",
    style = x ~ style(color = ifelse(x < 0 , "red", "green")),
    x ~ icontext(ifelse(x < 0, "arrow-down", "arrow-up"), x)))
)
4

1 に答える 1