提问人:Hamid Alvi 提问时间:10/11/2023 最后编辑:Wiktor StribiżewHamid Alvi 更新时间:10/11/2023 访问量:32
将具有 \n 和 k 值的字符串向量转换为数字
Convert string vector with \n and k values into numeric with
问:
我有一个以下向量。其中,我们有 ,并用数值数据表示 1000。\n
k
k
v <- c("2.2K\n", "3\n", "1K\n", "1", "45", "5\n")
> v
> [1] "2.2K\n" "3\n" "1K\n" "1" "45" "5\n"
我需要将上面的向量转换为数值向量,如下所示。
> v
[1] "2200" "3" "1000" "1" "45" "5"
谁能帮我?
当我使用以下命令时,我解决了 ,但无法解决 .\n
K
> as.numeric(v)
[1] NA 3 NA 1 45 5
答:
2赞
ThomasIsCoding
10/11/2023
#1
你可以使用scan
+ gsub
> as.numeric(scan(text = gsub("K", "e3", v), what = "", quiet = TRUE))
[1] 2200 3 1000 1 45 5
1赞
jay.sf
10/11/2023
#2
获取而不是删除,替换可能的十次幂,
sub(r'{(\d\.?\d?\w?).*}', '\\1', v) |>
stringi::stri_replace_all_regex(pat=c('K', "M"), rep=paste(c('e3', 'e6'))) |>
as.numeric()
# [1] 2200 3 1000 1 45 5
可以扩展图案和替换的地方。
上一个:为什么我的 Java 输出字符串以末尾的 % 字符结尾?
下一个:字符串拆分
评论