我的数据如下:
VAR_A: 134, 15M3, 2004, 301ME, 201E, 41, 53, 22
我想改变这个向量,如下所示:
VAR_A: 134, -99, 2004, -99, -99, 41, 53, 22
如果某个值包含字符(例如M
,E
),我想用-99
更改这些值。
我怎么能在R?我听说正则表达式可能是一种可能的方式,但我并不擅长。
答案 0 :(得分:6)
在我看来,你想要替换非数字的值,如果是这样的话......
x <- c('134', '15M3', '2004', '301ME', '201E', '41', '53', '22')
sub('.*\\D.*', '-99', x)
# [1] "134" "-99" "2004" "-99" "-99" "41" "53" "22"
或者基本上你可以这样做:
x[grepl('\\D', x)] <- -99
as.numeric(x)
# [1] 134 -99 2004 -99 -99 41 53 22