在R中整理数据和从数据帧中提取数字(双精度)的最佳方法是什么?



我有一个包含调查问卷回复的数据框架。提取数字并将其更改为双类型变量的最佳方法是什么?

下面是一个小示例:

a <- ("10.5", "about 30", "25 per month")
tibble(a)

我试过了

parse_double(a)

看起来我很接近了。任何帮助都是感激的

我们需要parse_number

library(readr)
parse_number(a)
[1] 10.5 30.0 25.0

不同之处在于parse_double只处理数字+.作为字符的字符向量,而parse_number从包含非数字字符

的字符串中提取数字部分。

数据
a <- c("10.5", "about 30", "25 per month")

我也知道一个解决方案(来自base包)

a <- c("10.5", "about 30", "25 per month")
as.numeric(gsub("[[:alpha:]]", "", a)) 

> as.numeric(gsub("[[:alpha:]]", "", a))
[1] 10.5 30.0 25.0
> end_time <- Sys.time()
> end_time - start_time
Time difference of 0.01400113 secs
> start_time <- Sys.time()
> parse_number(a)
[1] 10.5 30.0 25.0
> end_time <- Sys.time()
> end_time - start_time
Time difference of 0.1500092 secs

我的解决方案比Akrun提供的更快。

最新更新