r 中的 gsub,仅针对某些值
gsub in r, only for some values
我是 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,-,
但我需要这些:
*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)
但它改变了我的所有其他数据。我怎样才能只更改我所有数据的前两个“,”。
提前致谢!
How can I change only the two first "," of all my data.
你可以使用 sub,
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,-,"
gsub("(?<=\d),", " ", data)
您可以简单地使用 lookbehind
。查看演示。
我是 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,-,
但我需要这些:
*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)
但它改变了我的所有其他数据。我怎样才能只更改我所有数据的前两个“,”。
提前致谢!
How can I change only the two first "," of all my data.
你可以使用 sub,
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,-,"
gsub("(?<=\d),", " ", data)
您可以简单地使用 lookbehind
。查看演示。