Вы можете написать вектор поиска, чтобы сказать, насколько каждое значение должно быть масштабировано на
scale <- 10^c("1"=1, "2"=2, k=3, K=4, "5"=5, m=6, M=7)
И затем использовать его для взвешивания ваших чисел. Вы либо захотите убедиться, что ваш столбец является символьным столбцом, либо, если это фактор, убедитесь, что уровни факторов находятся в том же порядке, что и данные.
format(
transform(dd, expand = value * scale[as.character(zeroes)]),
scientific=20)
# value zeroes expand
# 1 1 1 10
# 2 12 2 1200
# K 123 k 1230000
# 5 1234 K 123400000
# k 5 5 5000
# m 56 m 56000000
# M 567 M 5670000000
format()
здесь просто чтобы отключить стандартную научную c нотацию
для факторного метода вы должны сделать
dd$zeros <- factor(d$zeros, levels=names(scale))
transform(dd, expand = value * scale[zeroes])