首页 > 解决方案 > 替换字符串中的下标数字

问题描述

我有以下向量,我希望将下标数字(例如₆,₂)替换为“正常”数字。

vec = c("C₆H₄ClNO₂", "C₆H₆N₂O₂", "C₆H₅NO₃", "C₉H₁₀O₂", "C₈H₈O₃")

我可以查找所有下标值并单独替换它们:

gsub('₆', '6', vec)

但是正则表达式中没有模式吗?

javascript有一个类似的问题,但我无法将其翻译成R。

标签: rregexgsubsubscript

解决方案


Use chartr:

Translate characters in character vectors

Solution:

chartr("₀₁₂₃₄₅₆₇₈₉", "0123456789", vec)

See the online R demo

BONUS

To normalize superscript digits use

chartr("⁰¹²³⁴⁵⁶⁷⁸⁹", "0123456789", "⁰¹²³⁴⁵⁶⁷⁸⁹")
## => [1] "0123456789"

推荐阅读