Я пытаюсь закодировать функцию, которая преобразует китайские цифры в арабские.
Идея состоит в том, чтобы получить набор scaled_digit
векторов и набор scale_factor
векторов, умножить их и сложить, чтобы получить желаемый результат.
digit=c('〇'=0,'一'=1,'二'=2,'三'=3,'四'=4,'五'=5,'六'=6,'七'=7,'八'=8,'九'=9)
scale=c('十'=10^1,'百'=10^2,'千'=10^3,'萬'=10^4,'億'=10^8,'兆'=10^12)
Одна из проблем, с которыми я сталкиваюсь, заключается в следующем:
Когда у меня есть число, которое составляет несколько сотен 10^4
с (萬) и несколько тысяч 10^12
с (兆), у меня остается вектор масштабного коэффициента, который выглядит следующим образом:
scale_factor=
structure(c(1000, 1e+12, 100, 10, 10000, 1000, 100, 10), .Names = c("千",
"兆", "百", "十", "萬", "千", "百", "十"))
[千] 兆 [百] [十] 萬 千 百 十
[1e+03] 1e+12 [1e+02] [1e+01] 1e+04 1e+03 1e+02 1e+01
Коэффициенты масштабирования, подлежащие настройке, отмечены [].
Позиции кардинала scale_factors
можно найти с помощью следующего кода:
cardinal_scale_factor=which(diff(scale_factor)>=0, T)+1
兆 萬
2 5
Как мне кодировать, чтобы scale_factor[1]
и scale_factor[3:4]
можно было умножить на scale_factor[2]
и [5]
соответственно?
Ожидаемый результат:
[千] 兆 [百] [十] 萬 千 百 十
[1e+15] 1e+12 [1e+06] [1e+05] 1e+04 1e+03 1e+02 1e+01