gpt4 book ai didi

r - 将国际格式的字符串转换为数字

转载 作者:行者123 更新时间:2023-12-02 07:38:50 25 4
gpt4 key购买 nike

我有一个包含国际格式数字(即字符串)的文件,其中包括测量单位。在这种情况下,小数位用“,”表示,1e3 分隔符用“.”表示。 (即德国数字格式)。

a <- c('2.200.222   €',
' 180.109,3 €')

b <- c('28,42 m²',
'47,70 m²')

我想将这些字符串高效地转换为 numeric。我试图通过代码过滤掉数字

require(stringr)
str_extract(a, pattern='[0-9]+.[0-9]+.[0-9]+')
str_extract(b, pattern='[0-9]+,[0-9]+')

然而,这似乎太容易出错了,我想一定有一个更标准化的方法。所以这是我的问题:是否有自定义函数、包或其他能够解决此类问题的东西?

非常感谢!

最佳答案

这是一个使用 gsub 处理您发布的示例数据的函数:

x <- c('2.200.222   €', '  180.109,3 €', '28,42 m²', '47,70 m²')

strip <- function(x){
z <- gsub("[^0-9,.]", "", x)
z <- gsub("\\.", "", z)
gsub(",", ".", z)
}

as.numeric(strip(x))
[1] 2200222.00 180109.30 28.42 47.70

它是这样工作的:

  1. 首先删除所有尾随的非数字(以及这些非数字之后的任何内容)
  2. 然后去掉所有句号。
  3. 最后,将逗号转换为句点。

关于r - 将国际格式的字符串转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13343677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com