标签: stringr

过滤以 R 中任何拉丁字母开头的所有行

如何过滤以 R 中的任何拉丁字母开头的所有行

示例代码不起作用

library(dplyr)

df <- data.frame( marks = c(20.1, 30.2, 40.3, 50.4, 60.5),
                  
                  age = c(21:25),
                  
                  roles = c('Software Eng.', 'Software Dev', 
                            'Data Analyst', 'Data Eng.',
                            '5Sigma'))

df %>% filter(grep("[A-z]", roles))

Run Code Online (Sandbox Code Playgroud)

所需输出

  marks age         roles
1  20.1  21 Software Eng.
2  30.2  22  Software Dev
3  40.3  23  Data Analyst
4  50.4  24     Data Eng.
Run Code Online (Sandbox Code Playgroud)

r stringr dplyr

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

在 R 中,在数据帧字符串列中提取 % 符号之前的数值

在下面的数据框中,我尝试构建一个新列“avcomp”,如果 Duty_nature 是“M”或“C”,它会从“code”列中提取空格和% 符号之间的数值。我尝试了下面的代码,但它只能获取前两个数字和百分号。你能帮忙吗?

avcomp 列应为

>[1] "30", "0.50, ""
Run Code Online (Sandbox Code Playgroud)

谢谢你!

code <- c("Greater than 30% of something","Less than 0.50% of something","30%")
duty_nature<- c("M","C","A")
test <-data.frame(code,duty_nature)
  
test$avcomp <- ifelse(test$duty_nature == "M" | test$duty_nature == "C",str_sub(str_match(test$code,"\\s*(.*?)%\\s*"),-4,-1),"")
Run Code Online (Sandbox Code Playgroud)

regex r substr stringr

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

如何在txt文件的r中拆分包含大量字母且没有空格的字符串?

假设我有一个如下所示的 txt 文件

aaaaaaaaaaaaaaaadddddddddddddssssssssssbbbbbbbbbbbbbccccccccccxxxxxxxxxxsddddddaaasdadvvvvvvvvbbbbbbbaxxxxnnnnnnnnnwwwwwwwwwwwwww
Run Code Online (Sandbox Code Playgroud)

str_split()这种情况我该如何申请?

我正在尝试计算这个txt文件中出现了多少个字母“a”

这是我到目前为止所拥有的,

aaaaaaaaaaaaaaaadddddddddddddssssssssssbbbbbbbbbbbbbccccccccccxxxxxxxxxxsddddddaaasdadvvvvvvvvbbbbbbbaxxxxnnnnnnnnnwwwwwwwwwwwwww
Run Code Online (Sandbox Code Playgroud)

然后我跑了str_length(str_detect(mytxtfile, "a"))

该函数的结果少于 9,我相信我在使用时做错了什么str_split()

请帮忙!

r stringr

3
推荐指数
2
解决办法
114
查看次数

R中有没有一种方法可以分隔缺少空格的句子,即“句子一.句子二”?

我从 XML 文件中抓取了一些文本块,这些文本块经常缺少句子之间的空格。我已经str_split成功地将这些块分解成易于理解的句子,如下所示:

list_of_strings <- str_split(chunk_of_text, pattern=boundary("sentence")
Run Code Online (Sandbox Code Playgroud)

这工作得很好,但它不能处理终止句号后面没有空格的情况。例如,"This sentence ends.This sentence continues." 它返回 1 个句子,而不是两个。

使用str_splitwithpattern=boundary("sentence")不起作用。

如果我搜索句点并将其替换为句点空格,当然会弄乱 1.5 磅之类的数字。

我探索过使用通配符来检测情况,例如,

str_view_all(x, "[[:alpha:]]\\.[[:alpha:]]"))
Run Code Online (Sandbox Code Playgroud)

但我不知道如何 1) 在句点后插入一个空格,以便后续对 str_split 的调用正常工作,或 2) 在句点处拆分。

发生这种情况时,有什么关于分隔句子的建议吗?

R程序员新手,感谢您的帮助!

regex r text-parsing stringr

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

如果通过 dplyr 和 stringr 进行字符串,有没有办法将一组字符串替换为另一组字符串

我重现了我的问题的简单版本。我本质上想将所有语句的语句列中的英语单词替换为西班牙语等效单词。

library(tidyverse)
english <- c('hello','world','my','name', 'is')
spanish <- c('hola','mundo','mi','nombre', 'es')
statement <-c('Hello my name is john doe',' hello world','my name is world','hello john, my world is','jane is my world ')

df <- data.frame(english,spanish,statement)  
df
Run Code Online (Sandbox Code Playgroud)

我试过

df %>% 
  str_replace_all(statement, c(df$english), c(df$spanish))
Run Code Online (Sandbox Code Playgroud)

str_replace_all(statement, c(df$english), c(df$spanish)).
Run Code Online (Sandbox Code Playgroud)

第二次尝试让我更接近我的答案。仅替换了一个答案。

r stringr dplyr tidyverse

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

Base R Regex中的正则表达式以标识电子邮件地址

我正在尝试使用Stringr库从大而凌乱的文件中提取电子邮件。

str_match不允许perl = TRUE,而且我无法弄清楚转义字符以使其正常工作。

有人可以推荐一种相对健壮的正则表达式,该正则表达式可以在以下情况下使用吗?

c("larry@gmail.com", "larry-sally@sally.com", "larry@sally.larry.com")->emails
"SomeRegex"->regex
str_match(emails, regex)
Run Code Online (Sandbox Code Playgroud)

regex r stringr

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

如何使用str_split_fixed使用多个定界符分割数据帧?

如何将由多个定界符分隔的列拆分为数据框中的单独列

read.table(text = " Chr  Nm1 Nm2 Nm3
    chr10_100064111-100064134+Nfif   20  20 20
    chr10_100064115-100064138-Kitl   30 19 40
    chr10_100076865-100076888+Tert   60 440 18
    chr10_100079974-100079997-Itg    50 11 23                
    chr10_100466221-100466244+Tmtc3  55 24 53", header = TRUE)


              Chr              gene   Nm1 Nm2 Nm3
    chr10_100064111-100064134 Nfif   20  20 20
    chr10_100064115-100064138 Kitl   30 19 40
    chr10_100076865-100076888 Tert   60 440 18
    chr10_100079974-100079997 Itg    50 11 23 12                
    chr10_100466221-100466244 Tmtc3  55 24 53 12
Run Code Online (Sandbox Code Playgroud)

我用了

library(stringr)
df2 <- str_split_fixed(df1$name, "\\+", 2)
Run Code Online (Sandbox Code Playgroud)

我想知道我们如何同时包含+和-分隔符

r stringr

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

逗号和句点之间的模式的正则表达式

经过几个小时的谷歌搜索和徒劳无功的尝试,我希望有人可以帮助解决这个公认的简单问题(虽然显然我的regexps是相当陌生的).

我有以下类型的数据:

name <- c("Doe, Mr. John")
Run Code Online (Sandbox Code Playgroud)

我想要"先生",但实际的标题各不相同.我的主要问题是我如何编写正则表达式来捕获"先生"部分,而没有其他任何东西?

我目前的做法如下:

library(stringr)
str_split(name, "[,\\s.]")[[1]][[3]]
Run Code Online (Sandbox Code Playgroud)

我设法使用提取做的最好的是:

str_extract(name, ", .*\\.")
Run Code Online (Sandbox Code Playgroud)

我确信有一种更简单的方法,任何人都可以帮助我吗?

regex r stringr

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

dplyr替换多个变量中的值

我需要用80英寸的气缸,齿轮和碳水化合物色谱柱替换非4色谱柱。我尝试了以下操作,但是不起作用。

mtcars %>% mutate_at(vars(cyl, gear, carb), replace(which(.!=4), 80))
Run Code Online (Sandbox Code Playgroud)

它引发以下错误:

Error in replace(which(. != 4), 80) : 
  argument "values" is missing, with no default
Run Code Online (Sandbox Code Playgroud)

我在这里想念什么?

r stringr dplyr magrittr

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

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

标签 统计

r ×10

stringr ×10

regex ×4

dplyr ×3

magrittr ×1

stringi ×1

substr ×1

text-parsing ×1

tidyverse ×1