标签: gsub

Ruby/Rails使用gsub和数组

我有一个字符串,我正在尝试使用Ruby中的gsub方法.问题是我有一个动态的字符串数组,我需要迭代搜索原始文本并替换.

例如,如果我有以下原始字符串(这是我正在使用的一些示例文本,并希望将其全部工作)并且有一系列我想要搜索和替换的项目.

我在这里先向您的帮助表示感谢!

ruby ruby-on-rails gsub

7
推荐指数
2
解决办法
2万
查看次数

R regex gsub分隔字母和数字

我有一个混合字母和数字的字符串:

"The sample is 22mg"
Run Code Online (Sandbox Code Playgroud)

我想分割字符串,其中一个数字紧跟着这样的字母:

"The sample is 22 mg"
Run Code Online (Sandbox Code Playgroud)

我试过这个:

gsub('[0-9]+[[aA-zZ]]', '[0-9]+ [[aA-zZ]]', 'This is a test 22mg')
Run Code Online (Sandbox Code Playgroud)

但是没有得到预期的结果.

有什么建议?

regex r gsub stringr

7
推荐指数
2
解决办法
1万
查看次数

从字符串中删除网址

我有以下字符串,存储在对象中sentence:

sentence <- "aazdlubtirol: RT @tradeDayTrades: sister articles \"$AAPL Dancing in a Burning Room\" January 2013  http://t.co/tkuCRfLy  \" $AAPL vs $AAPL \"  August 2011 http://t.co/863HkVjn"
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用gsub删除以下开头的网址http:

sentence <- gsub('http.*','',sentence)

但是,它取代之后的所有内容http:

aazdlubtirol: RT @tradeDayTrades: sister articles \"$AAPL Dancing in a Burning Room\" January 2013

我想要的是:

aazdlubtirol: RT @tradeDayTrades: sister articles \"$AAPL Dancing in a Burning Room\" January 2013 \" $AAPL vs $AAPL \" August 2011

我正在尝试清理网址,所以如果字符串包含http我想要删除网址.我找到了一些解决方案,但他们没有帮助我.

url replace r gsub

7
推荐指数
1
解决办法
5192
查看次数

如何从R中的字符串中仅删除"实际数字"

我有一串数字和字符

c2 = "list of 2nd C2 H2O 1 12 123"
Run Code Online (Sandbox Code Playgroud)

我需要摆脱所有数字,即实际数字,即1,12,123,但不是那些属于字符集的数字,即2nd,C2,H2O.

到目前为止,我提出的最佳解决方案是这个

gsub("? [[:digit:]]*", " ", c2)
"list of nd C2 H2O   "
Run Code Online (Sandbox Code Playgroud)

它成功地摆脱了1 12 123,同时保留了C2 H2O.但是,我在第二节输掉了2.

我没办法.

谢谢!

regex numbers r character gsub

7
推荐指数
1
解决办法
2823
查看次数

将数字转换为字母

我有以下向量:

x <- c(11, 12, 21, 22)
Run Code Online (Sandbox Code Playgroud)

我想将它转换为相应的字母,即我想得到这个结果:

AA AB BA BB
Run Code Online (Sandbox Code Playgroud)

我该怎么做?我打赌这是一个简单的答案,它通过使用保留的LETTERS矢量,但我无法找到解决方案.这是迄今为止我设法提出的最好的(你可能想把孩子带出房间):

> paste0(gsub(1, LETTERS[1], substr(x, 1, 1)),
         gsub(2, LETTERS[2], substr(x, 1, 1)))
[1] "A1" "A1" "2B" "2B"
Run Code Online (Sandbox Code Playgroud)

string replace r gsub

7
推荐指数
3
解决办法
1万
查看次数

复制数据帧的观察,但也替换R中的特定变量值

我正在寻找一些关于数据重组的建议.我正在使用Google Forms收集一些数据,我将其作为csv文件下载,如下所示:

# alpha                 beta    option
#  6             8, 9, 10, 11    apple
#  9                        6     pear
#  1                        6    apple
#  3                     8, 9     pear
#  3                     6, 8     lime
#  3                        1    apple
#  2, 4, 7, 11              9     lime
Run Code Online (Sandbox Code Playgroud)

数据有两个变量(alpha和beta),每个变量都列出数字.对于我的大多数数据,每个变量中只有一个数字.但是,对于某些观察,可以有两个,三个甚至十个数字.这是因为这些是使用谷歌表单中的"复选框"选项收集的回复,它允许对一个调查问题的多个答案.此外,对于一些潜在的解决方案来说,google表单在每个多个答案之前返回前导空格可能很重要.

在我的实际数据中,这只发生在所有观察的很小一部分中,上面是一个更简洁的例子.数据集中还有其他几个变量.在这里,我只包括一个包含因子的"选项".

我需要做的是在'alpha'或'beta'变量中复制包含多个数字的所有观察.重复行的数量应该等于alpha或beta变量中存在的数字的数量.然后,我需要将'alpha'或'beta'变量中的数字序列单独替换为每个数字.这将导致类似以下内容:

#  alpha  beta   option
#     6    8     apple
#     6    9     apple
#     6   10     apple
#     6   11     apple
#     9    6      pear
#     1    6     apple
#     3    8      pear
#     3    9 …
Run Code Online (Sandbox Code Playgroud)

r gsub reshape2 grepl

7
推荐指数
2
解决办法
277
查看次数

匹配并替换文本向量中的多个字符串,而不在R中循环

我试图在R中应用gsub来将字符串a中的匹配替换为字符串b中的相应匹配.例如:

a <- c("don't", "i'm", "he'd")
b <- c("do not", "i am", "he would")
c <- c("i'm going to the party", "he'd go too")
newc <- gsub(a, b, c)
Run Code Online (Sandbox Code Playgroud)

这样newc ="我要参加聚会","他也会参加聚会".这种方法不起作用,因为gsub只接受a和b的长度为1的字符串.执行循环以循环a和b将非常慢,因为实数a和b的长度为90且c的长度> 200,000.R中是否有矢量化方式来执行此操作?

r gsub

7
推荐指数
2
解决办法
1万
查看次数

在R中提取部分字符串(直到第一个分号)

我有一个列包含由分号分隔的3个字符串的值.我需要提取字符串的第一部分.

Type <- c("SNSR_RMIN_PSX150Y_CSH;SP_12;I0.00V50HX0HY3000")
Run Code Online (Sandbox Code Playgroud)

我想要的是:获取字符串的第一部分(直到第一个分号).

输出: SNSR_RMIN_PSX150Y_CSH

我试过gsub但不能理解.请告诉我们如何在R中有效地做到这一点.

string r gsub

7
推荐指数
2
解决办法
5587
查看次数

使用gsub仅在字符串中保留字母数字字符和空格

我有一个字母,其中包含字母数字字符,特殊字符和非UTF-8字符.我想删除特殊和非utf-8字符.

这是我尝试过的:

gsub('[^0-9a-z\\s]','',"�+ Sample string here =�{�>E�BH�P<]�{�>")
Run Code Online (Sandbox Code Playgroud)

但是,这会删除特殊字符(标点符号+非utf8),但输出没有空格.

gsub('/[^0-9a-z\\s]/i','',"�+ Sample string here =�{�>E�BH�P<]�{�>")
Run Code Online (Sandbox Code Playgroud)

结果有空格但仍然存在非utf8字符.

有什么工作吗?

对于上面的示例字符串,输出应为:此处的示例字符串

regex string r utf-8 gsub

7
推荐指数
1
解决办法
1万
查看次数

gsub 的否定 | 替换特定向量中除字符串之外的所有内容

我有一个字符串向量:

ve <- c("N","A","A","A","N","ANN","NA","NFNFNAA","23","N","A","NN", "parnot", "important", "notall")
Run Code Online (Sandbox Code Playgroud)

我只想在此向量中保留三个可能的值:NANA

因此,我想替换任何不是NA的元素NA

我怎样才能实现这个目标?

我已经尝试过以下方法:

gsub(ve, pattern = '[^NA]+', replacement = 'NA')
gsub(ve, pattern = '[^N|^A]+', replacement = 'NA')
Run Code Online (Sandbox Code Playgroud)

但这些效果不佳,因为它们将每个字符串中的每个“A”或“N”实例替换为 NA。所以在某些情况下我最终会得到NANANANANANA, 而不是简单地NA.

regex r negation gsub

6
推荐指数
1
解决办法
2541
查看次数

标签 统计

gsub ×10

r ×9

regex ×4

string ×3

replace ×2

character ×1

grepl ×1

negation ×1

numbers ×1

reshape2 ×1

ruby ×1

ruby-on-rails ×1

stringr ×1

url ×1

utf-8 ×1