Saya memiliki data berikut dalam r

data <- structure(list(Category = c("Item 1", "Item 2", "Item 3"), `Month 1` = c(-3.7, 
0.8, -2.1), `Month 2` = c(-2.1, 0.8, -3.7)), row.names = c(NA, 
-3L), class = c("tbl_df", "tbl", "data.frame"))

Saya menggunakan bingkai data ini untuk membuat tabel menggunakan kableExtra (dan pada akhirnya membuatnya dalam format HTML). Di bawah ini, saya membuat kolom tambahan yang menggunakan 2 argumen Ifelse (di mana kata "naik" jika bulan 2 & gt; bulan 1, "turun" jika bulan 2 & lt; bulan 1, atau kosong jika bulan 2 = bulan 1). Alih-alih memiliki kata-kata, saya ingin menggunakan simbol unicode dalam ini tautan untuk menampilkan panah .

Apakah ada cara untuk menggunakan kode hex Unicode alih-alih kata-kata, sehingga saya dapat memiliki panah timur laut untuk "naik", panah kanan untuk argumen kosong, dan panah tenggara untuk "turun"?

library(kableExtra)
library(tidyverse)

data %>% 
  mutate(Trend = ifelse(.[,3] > .[,2],"Up", ifelse(.[,3] == .[,2], "",  "Down"))) %>% 
  kable() %>% 
  kable_styling()

Saya pada akhirnya ingin mereplikasi sesuatu di sepanjang garis gambar yang saya lampirkan

enter image description here

1
sa90210 29 Mei 2021, 01:57

1 menjawab

Jawaban Terbaik

Satu opsi adalah formattable

library(dplyr)
library(formattable)
data <- data %>% 
    mutate(Trend = case_when(`Month 2` > `Month 1` ~ "Up",
      `Month 1` > `Month 2` ~ "Down", TRUE ~ "" ))


formattable(data, list(
  
  Trend = formatter(
    "span",
    style = x ~ style(color = case_when(x =="Up" ~ "green",
      x == "Down" ~ "red", TRUE ~ "black")),
    x ~ icontext(case_when(x == "Down"~ "arrow-down",
        x== "Up" ~ "arrow-up", TRUE ~ "arrow-right")))
))

-keluaran

enter image description here

1
akrun 28 Mei 2021, 23:16