如何提取值中的字符组件并将值替换为-99



我的数据看起来像:

VAR_A: 134, 15M3, 2004, 301ME, 201E, 41, 53, 22

我想改变这个矢量如下:

VAR_A: 134, -99, 2004, -99, -99, 41, 53, 22

如果一个值包含字符(例如,ME),我想用-99更改这些值。我怎么能在R中做到这一点?我听说正则表达式是一种可能的方法,但我不擅长它

在我看来,如果是这样的话,你似乎想替换不是数字的值。。。

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

最新更新