小编das*_*asf的帖子

R:环顾四周

我需要匹配前面有两个不同元音的'r'.例如,'我们'或'梨'将匹配,但'bar'或'aar'不匹配.我确实设法匹配两个不同的元音,但我仍然不能使...后续'r'的lookbehind 条件().既(?<=...)r不会...\\Kr产生任何结果.有任何想法吗?

x <- c('([aeiou])(?!\\1)(?=(?1))')
y <- c('our','pear','bar','aar')
y[grepl(paste0(x,collapse=''),y,perl=T)]
## [1] "our"  "pear"`
Run Code Online (Sandbox Code Playgroud)

regex backreference r

33
推荐指数
3
解决办法
775
查看次数

R:可变宽度后视的解决方法

给定这个向量:

ba <- c('baa','aba','abba','abbba','aaba','aabba')'
Run Code Online (Sandbox Code Playgroud)

我想将a每个单词的结尾更改为iexceptbaaaba

我写了以下行...

gsub('(?<=a[ab]b{1,2})a','i',ba,perl=T)
Run Code Online (Sandbox Code Playgroud)

但被告知:PCRE 模式编译错误 ')a' 处的后视断言不是固定长度

我环顾四周,显然 R/Perl 只能向前看可变宽度,而不是向后看。这个问题有什么解决方法吗?谢谢!

regex r lookbehind

5
推荐指数
1
解决办法
927
查看次数

R:返回数据帧中匹配的行号和列号

emperor <- rbind(cbind('Augustus','Tiberius'),cbind('Caligula','Claudius'))

如何返回包含序列'us'的所有单元格的行号和列号,即[1,1],[1,2],[2,2]?

indexing search r

5
推荐指数
1
解决办法
2295
查看次数

R:更改为与字符串中前一个字符相同的字符

假设我有一个向量c('JKA1','BP9C','SSTQ3WA'),我想将数字前的字符更改为该数字,以便R返回'JK11' 'B99C' 'SST33WA'.无论如何使用正则表达式进行此操作还是我最好使用除R之外的其他内容?

regex r char

4
推荐指数
1
解决办法
73
查看次数

R:(*SKIP)(*FAIL)用于多种模式

鉴于test <- c('met','meet','eel','elm'),我需要一行代码匹配任何不在'我'或'ee'的e.我写道(ee|me)(*SKIP)(*F)|e,它确实排除了"遇见"和"鳗鱼",但没有"遇见".这是因为|是独家还是?无论如何,有没有一个解决方案只能返回'榆树'?

为了记录,我知道我也可以做(?<![me])e(?!e),但我想知道解决方案是什么(*SKIP)(*F)以及为什么我的线路是错误的.

regex boolean r

4
推荐指数
1
解决办法
444
查看次数

R:保留1行/列矩阵

给定一行,一列或一个单元格的矩阵,我需要在保持矩阵结构的同时重新排序行.我尝试添加,drop=F但它不起作用!我做了什么?

test = matrix(letters[1:5]) # is a matrix
test[5:1,,drop=F]           # not a matrix

test2 = matrix(letters[1:5],nrow=1) # is a matrix
test2[1:1,,drop=F]                  # not a matrix

test3 = matrix(1)  # is a matrix
test3[1:1,,drop=F] # not a matrix
Run Code Online (Sandbox Code Playgroud)

r matrix subset

4
推荐指数
1
解决办法
76
查看次数

R:正则表达式捕获给定字符后的所有实例

给定字符串ab cd ; ef gh ij,如何删除第一个空格之后的所有空格;,即ab cd ; efghij?我尝试使用\K但无法让它完全工作。

test = 'ab cd  ; ef  gh ij'
gsub('(?<=; )[^ ]+\\K +','',test,perl=T)
# "ab cd  ; efgh ij"
Run Code Online (Sandbox Code Playgroud)

regex backreference pcre r

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

R:查找不包含一组字符序列的单词

我试图从矢量中找到任何不包含连续元音的单词,我将其定义为[aeiou].例如,我想要"阿拉斯加"或"密西西比",而不是"格鲁吉亚"或"夏威夷".我知道{2,}两个或两个以上的东西,而[^...]不是东西.但我无法弄清楚如何在grep下将它们组合起来.救命?

states <- c('Alaska','Georgia','Hawaii','Mississippi')

regex search r

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

r:应用值分配

我想用x替换以下向量中每个字符串的第二个字母。

ba <- c('ba','aba','baba')
# goal: bx, axa, bxba
Run Code Online (Sandbox Code Playgroud)

通常我只会使用substr(ba,2,2) <- 'x'。但是由于过于复杂的原因而无法进入此处,我试图避免substr,而是寻找另一种解决方案。因此,我尝试将字符串拆分并替换每个列表的第二个元素。但我收到此错误消息。

ba2 <- strsplit(ba,'')
lapply(ba2,function(x) x[2]) <- 'x'
# Error in lapply(ba2, function(x) x[2]) <- "x" : 
# could not find function "lapply<-"
Run Code Online (Sandbox Code Playgroud)

我该如何解决此问题?有没有可以lapply结合使用的方法<-

r variable-assignment lapply

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