Вы имели в виду это?
library(dplyr)
text_tbl %>%
mutate_at(vars(Value1:Value2),
funs(new = case_when(. >= 1000 ~ paste(signif(./1e3, 2), "tn"),
. < 1 ~ paste(signif(.*1e3, 2), "mn"),
TRUE ~ paste(signif(., 2), "bn"))))
, что дает
Items Value1 Value2 Value1_new Value2_new
1 Item1 0.9 0.1 900 mn 100 mn
2 Item2 11.5 205.5 12 bn 210 bn
3 Item3 3000.5 1200.5 3 tn 1.2 tn
Пример данных:
text_tbl <- structure(list(Items = structure(1:3, .Label = c("Item1", "Item2",
"Item3"), class = "factor"), Value1 = c(0.9, 11.5, 3000.5), Value2 = c(0.1,
205.5, 1200.5)), .Names = c("Items", "Value1", "Value2"), row.names = c(NA,
-3L), class = "data.frame")
# Items Value1 Value2
#1 Item1 0.9 0.1
#2 Item2 11.5 205.5
#3 Item3 3000.5 1200.5