R:我应该如何删除以问号开头的图案

时间:2017-06-28 21:15:48

标签: r

我有一个让我很困惑的问题:如何删除以问号开头的模式?

例如:

## dataframe named test
x y
1 gffsd?lang=dfs
2 sdldfsd?lang=gsd
3 eoriwesd?lang=fh
4 eriywo?lang=asd

我想要的是:

x y
1 gffsd
2 sdldfsd
3 eoriwesd
4 eriywo

我尝试了几种方法,包括:

test$y = sapply(strsplit(test$y, '?'), head, 1)
test$y = sapply(strsplit(test$y, '?lang='), head, 1)
gsub("?",NA, test$y, fixed = TRUE)

不幸的是,所有这些都失败了。

提前致谢!

BTW,任何人都知道如何将“®”替换为“ - ”

1 个答案:

答案 0 :(得分:8)

gsub可以使用正确的正则表达式。

test$y = gsub("\\?.*", "", test$y)
test
  x        y
1 1    gffsd
2 2  sdldfsd
3 3 eoriwesd
4 4   eriywo

你需要摆脱问号" \\?"和"。*"表示您要删除问号后的所有内容。

你的第二个问题也是gsub

string = 'anybody knows how to replace ® to -'
gsub("®",  "-", string)
[1] "anybody knows how to replace - to -"