The fmt_scientific() function

Use exibble to create a gt table. Format the num column as partially numeric and partially in scientific notation (using the num > 500 and num <= 500 expressions in the respective rows arguments).

exibble |>
  gt() |>
  fmt_number(
    columns = num,
    rows = num > 500,
    decimals = 1,
    scale_by = 1/1000,
    pattern = "{x}K"
  ) |>
  fmt_scientific(
    columns = num,
    rows = num <= 500,
    decimals = 1
  )
num char fctr date time datetime currency row group
1.1 × 10−1 apricot one 2015-01-15 13:35 2018-01-01 02:22 49.950 row_1 grp_a
2.2 banana two 2015-02-15 14:40 2018-02-02 14:33 17.950 row_2 grp_a
3.3 × 101 coconut three 2015-03-15 15:45 2018-03-03 03:44 1.390 row_3 grp_a
4.4 × 102 durian four 2015-04-15 16:50 2018-04-04 15:55 65100.000 row_4 grp_a
5.5K NA five 2015-05-15 17:55 2018-05-05 04:00 1325.810 row_5 grp_b
NA fig six 2015-06-15 NA 2018-06-06 16:11 13.255 row_6 grp_b
777.0K grapefruit seven NA 19:10 2018-07-07 05:22 NA row_7 grp_b
8,880.0K honeydew eight 2015-08-15 20:20 NA 0.440 row_8 grp_b