我有以下向量:
vec<-c("70,00 mln €", "20,50 mln €", "400 mila", "400 mila", "400 mila", "100 mila", "50 mila")
在vec中,mln表示“百萬”,而mila表示“千”。我想將此向量轉換為數值向量,如下所示
70000000, 20500000, 400000, 400000, 400000, 100000, 50000
例如,70000000 代表 7000 萬,20500000 代表 2050 萬等等。
我嘗試了以下方法:
unlist(regmatches(vec, gregexpr("[[:digit:]] ", vec)))
取字串的數字部分,然后乘以 1000 或 1000000,但我得到:
[1] "70" "00" "20" "50" "400" "400" "400" "100" "50"
在這里,"70" "00"應該只是"70","20" "50"應該是20.5(數字)。
uj5u.com熱心網友回復:
一個更簡單的選擇是在洗掉空格和其他字符之后用e6和e3for 進行替換,然后用mlnmilaas.numeric
library(stringr)
as.numeric(str_replace_all(str_remove_all(chartr(",", ".", vec),
"\\s €|\\s "), c(mln = "e6", "mila" = "e3")))
-輸出
[1] 70000000 20500000 400000 400000 400000 100000 50000
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/442323.html
下一篇:我在使用dataframe(X.inverseTransform(data_out),columns=data_out.columns)時遇到問題
