R 将字符转换为数字

R 将字符转换为数字,r,R,如何转换: x<-c("2.0 lakhs","22.0 lakhs","1.6 Cr", "1.8 Cr") x您可以在tidyverse中采用以下方法。它还处理没有后缀或singluar'lakh'的情况 x%as.data.frame()%%>%setNames('x')%%>% 单独(x,c('Amt','str'),sep='\\s',convert=T)%>% 突变(str=case_)(str%

如何转换:

x<-c("2.0 lakhs","22.0 lakhs","1.6 Cr", "1.8 Cr")

x您可以在
tidyverse
中采用以下方法。它还处理没有后缀或singluar'lakh'的情况

x%as.data.frame()%%>%setNames('x')%%>%
单独(x,c('Amt','str'),sep='\\s',convert=T)%>%
突变(str=case_)(str%在%c('lakhs','lakh')~100000L时,
str==“Cr”~10000000升,
真~1L))%>%
转换(最终金额=金额*str)
#>最终金额
#>1 2.0e+05
#>2.2e+06
#>31.6e+07
#>4.1.8e+07
由(v2.0.0)于2021年5月30日创建

如果您希望返回向量,请在管道末端添加
%%>%pull(最终金额)

library(stringr)
library(readr)
ifelse(str_detect(x, "lakhs"), parse_number(x)*100000, parse_number(x)*10000000)
输出:

200000  2200000 16000000 18000000
library(stringr)
library(readr)
ifelse(str_detect(x, "lakhs"), parse_number(x)*100000, parse_number(x)*10000000)
200000  2200000 16000000 18000000