首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用正则表达式删除R数据帧中的引号

使用正则表达式删除R数据帧中的引号
EN

Stack Overflow用户
提问于 2015-04-18 02:49:15
回答 2查看 10.1K关注 0票数 3

下面是我的数据集(名为g)现在的样子。我在R.

代码语言:javascript
复制
Q.35 | Q.36 | age | gender | country 

2 | 2 | 1 | 20 | 2 | AU"       
3 | 5 | 5 | 21 | 1 | AU"       

我想删除国家代码(AU而不是AU)上的引号。但是我尝试过的规则没有起作用。

代码语言:javascript
复制
h <- grep("\"", "", g)

h <- grep(""", "", g)

h <- grep('"', '', g)

如何删除这些引号?

编辑

啊,真灵!我应该用的是gsub而不是grep。

但是gsub搞乱了我的代码,因此我意识到必须将gsub应用于特定的变量,如下所示:

代码语言:javascript
复制
h$country.f <- gsub("\"", "", h$country.f)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-18 03:04:26

grep只搜索字符向量的每个元素中的匹配项,如果要替换特定模式的第一个匹配项,请使用subgsub替换所有匹配项。

示例

代码语言:javascript
复制
> h <- data.frame(age = c(20,21), country = c('AU"', 'AU"'))
> h$country <- gsub('"', '', h$country)
> h

#   age country
# 1  20      AU
# 2  21      AU
票数 6
EN

Stack Overflow用户

发布于 2015-04-18 09:36:17

另外,还有一个很好的包stringr,它提供了一种操作字符串的方便方法:

代码语言:javascript
复制
df <- data.frame(age = c(20,21), country = c('AU"', 'AU"'))
require(stringr)
df$country <- str_replace_all(string = df$country, pattern = '"', replacement = "")

我喜欢使用它,因为它的语法非常简单。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29712335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档