R,在不影响其他价值的情况下替代价值观

时间:2015-11-24 05:25:27

标签: regex r grep substitution

在R中,我有一个包含数字的字符向量,例如:

a <- c("1", "1.5", "-2", "3-4.5", "-1", "5-7.5", "3")

我想在包含范围的值中替换短划线(&#34; - &#34;)(&#34; 3-4.5&#34;和&#34; 5-7.5&#34 ;)对另一个角色,说&#34; $&#34;。

所以最后我想要:

a <- c("1", "1.5", "-2", "3$4.5", "-1", "5$7.5", "3")

我该如何做到这一点?

我想通过短划线拆分包含范围的值,但这样做也会分割出不是我想要的负数。

谢谢。

2 个答案:

答案 0 :(得分:2)

这是一种方法:

a <- c("1", "1.5", "-2", "3$4.5", "-1", "5$7.5", "3")

gsub("([^-]+)(-)(.+)", "\\1$\\3", a)

## [1] "1"     "1.5"   "-2"    "3$4.5" "-1"    "5$7.5" "3"    

答案 1 :(得分:0)

我们也可以使用正则表达式外观

@implementation MySingleton
static MySingleton* _sharedMySingleton = nil;

+(MySingleton*)sharedMySingleton
{
    @synchronized([MySingleton class])
    {
        if (!_sharedMySingleton)
            [[self alloc] init];

        return _sharedMySingleton;
    }

    return nil;
}