如何更改"> 1200"在R?到1200?

时间:2016-12-13 17:14:56

标签: r

我们有一个数据集,其中包含限制在特定范围内的数值。当值超出该范围时,它们将简化为"<75"">1200"

我们希望以自动方式将这些值更改为最大值或最小值。因此,1200应该变为"<75"75应变为[153] 240 645 85 235 >1200 715 235 150

*.html

4 个答案:

答案 0 :(得分:3)

我们可以使用gsub来匹配<>的一个或多个实例,替换为空白""并转换为数字。

as.numeric(gsub("[<>]+", "", v1))
#[1]  240  645   85  235 1200  715  235  150   75

如果只有一个实例,我们也可以使用sub

数据

v1 <- c(240,   645,   85,    235,   '>1200', 715,   235,   150, '<75')

答案 1 :(得分:3)

我个人喜欢依赖尽可能多的包裹,因为我是一个受虐狂,所以如果我是你,我会使用readr::parse_number()

> readr::parse_number(v1)
[1]  240  645   85  235 1200  715  235  150

答案 2 :(得分:0)

或者我们可以从矢量中提取所有数字并将其转换为数字

as.numeric(regmatches(x, gregexpr("[[:digit:]]+", x)))

#[1] 240  645   85  235 1200  715  235  150

或我们也可以使用extract_numeric

中的tidyr
library(tidyr)
extract_numeric(x)

#[1] 240  645   85  235 1200  715  235  150

答案 3 :(得分:0)

使用str_extract中的stringr

library(stringr)

as.numeric(str_extract(x, '\\d+'))
# [1]  240  645   85  235 1200  715  235  150   75

数据(来自@akrun):

x <- c(240,   645,   85,    235,   '>1200', 715,   235,   150, '<75')