Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex r中的gsub,仅适用于某些值_Regex_R_Gsub - Fatal编程技术网

Regex r中的gsub,仅适用于某些值

Regex r中的gsub,仅适用于某些值,regex,r,gsub,Regex,R,Gsub,我是R的新手,所以如果这太基本,我很抱歉。 我有一个包含586行的“.txt”文件,如下所示: 数据: 但我需要这些: *M1 D1.13 o,o,o,o,o,-,o,o,o,-, *M2 D1.13 o,ab,o,o,o,-,o,o,o,-, 所以,我使用了gsub函数: gsub(",", " ", data) 但它改变了我的所有其他数据。如何仅更改所有数据中的前两个“?” 提前谢谢 如何仅更改所有数据中的前两个“?” 你可以用潜艇 sub("^([^,]*),([^,]*),", "\

我是R的新手,所以如果这太基本,我很抱歉。 我有一个包含586行的“.txt”文件,如下所示:

数据:

但我需要这些:

*M1 D1.13 o,o,o,o,o,-,o,o,o,-,
*M2 D1.13 o,ab,o,o,o,-,o,o,o,-,
所以,我使用了gsub函数:

gsub(",", " ", data)
但它改变了我的所有其他数据。如何仅更改所有数据中的前两个“?”

提前谢谢

如何仅更改所有数据中的前两个“?”

你可以用潜艇

sub("^([^,]*),([^,]*),", "\\1 \\2 ", x)
示例:

> x <- c("*M1,D1.13,o,o,o,o,o,-,o,o,o,-,", "*M2,D1.13,o,ab,o,o,o,-,o,o,o,-,")
> sub("^([^,]*),([^,]*),", "\\1 \\2 ", x)
[1] "*M1 D1.13 o,o,o,o,o,-,o,o,o,-,"  "*M2 D1.13 o,ab,o,o,o,-,o,o,o,-,"
>x sub(“^([^,]*),([^,]*),”,“\\1\\2”,x)
[1] “*M1 D1.13 o,o,o,o,o,-,o,o,o,-,”*M2 D1.13 o,ab,o,o,o,-,o,o,o,-,”
如何仅更改所有数据中的前两个“?”

你可以用潜艇

sub("^([^,]*),([^,]*),", "\\1 \\2 ", x)
示例:

> x <- c("*M1,D1.13,o,o,o,o,o,-,o,o,o,-,", "*M2,D1.13,o,ab,o,o,o,-,o,o,o,-,")
> sub("^([^,]*),([^,]*),", "\\1 \\2 ", x)
[1] "*M1 D1.13 o,o,o,o,o,-,o,o,o,-,"  "*M2 D1.13 o,ab,o,o,o,-,o,o,o,-,"
>x sub(“^([^,]*),([^,]*),”,“\\1\\2”,x)
[1] “*M1 D1.13 o,o,o,o,o,-,o,o,o,-,”*M2 D1.13 o,ab,o,o,o,-,o,o,o,-,”

gsub((?
gsub)(?感谢您的回复!小警告:它将用空格替换任何前面带有数字的coma,不仅前两个空格(适用于示例数据,但可能会对其他数据产生意外结果)。@vks是的,我已用“其他数据”而不是“真实数据”更新了注释(我想到了未来的读者,他们可能会错过这一点,砰砰的一声寻找它为什么不能像预期的那样工作:p)谢谢你的回答!小警告:它将用空格替换前面的任何数字,不仅仅是前两个空格(适用于示例数据,但可能会在其他数据上产生意外的结果)@vks是的,我已经用“其他数据”而不是“真实数据”更新了评论(我在想未来的读者可能会错过这一点,并猛击他们的脑袋,寻找它为什么不能像预期的那样工作:p)谢谢你的回复!谢谢你的回复!我认为值得注意的是,g在
gsub
中是全局的,所以一个解决方案是调用
sub
两次。@Avinash的答案更好,因为它只是一次通过我认为值得注意的是,g在
gsub
中是全局的,所以一个解决方案是调用
sub
两次。@Avinash的答案是b因为只有一个通行证