在我的数据框中,有一个包含乘数指示器的列,例如千、百万等,以文本形式出现。
我想将它们转换为数字。这是我尝试过的方法:
a <- c("Thousands", "thousands", "Hundreds", "hundreds")
newA <- as.numeric(gsub("[Tt]housands","1000",gsub("[Hh]undreds","100",a)))
这种方法可以起作用,但是当有多个乘数时(就像现在这种情况)会非常繁琐。我认为应该有一种方法可以通过一个gsub
调用来解决,但我无法做到。像这样的东西是我想要的(当然,这个特定的尝试并没有成功):
as.numeric(gsub("^.*-","",gsub("([Hh]undreds)([Tt]housands)","\\1-100 \\2-1000",a)))
stringi
的方法安装的依赖要比qdap
少得多。 - PavoDive