我想清理包含转义引号的字符串.我想删除字符串的结尾和开头的转义引号,但保持字符串中所有qoutation标记的完整性.我想出的是以下内容.
library(stringr)
s1 <- "\"He said:\"Hello\" - some word\""
str_replace_all(s1, "(^\\\")|(\\\"$)", "")
> [1] "He said:\"Hello\" - some word"
Run Code Online (Sandbox Code Playgroud)
我现在正在努力的是,我只想删除引号,当且仅当开头和结尾有一个引号时.否则不.以下表达式错误地删除了前导表达式.
s2 <- "\"Hello!\" he said"
str_replace_all(s2, "(^\\\")|(\\\"$)", "")
> [1] "Hello!\" he said"
Run Code Online (Sandbox Code Playgroud)
在这里我的正则表达式应该表明我只想删除它们,以防整个字符串被包装在转义引号中.我怎样才能做到这一点?
我想检查一个字符串是否只包含一种类型的字符
例如
INPUT:
str = "AAAAB"
char = "A"
OUTPUT:
str contains only char = FALSE
Run Code Online (Sandbox Code Playgroud)
随着grepl(char,str)其结果是事实,但我希望它是假的.
非常感谢
我读了对正则表达式和哈德利韦翰的stringr和dplyr包,但无法弄清楚如何得到这个工作.
我在数据框中有图书馆流通数据,电话号码作为字符变量.我想取最初的大写字母并将其作为一个新变量,将字母和句点之间的数字转换为第二个新变量.
Call_Num
HV5822.H4 C47 Circulating Collection, 3rd Floor
QE511.4 .G53 1982 Circulating Collection, 3rd Floor
TL515 .M63 Circulating Collection, 3rd Floor
D753 .F4 Circulating Collection, 3rd Floor
DB89.F7 D4 Circulating Collection, 3rd Floor
Run Code Online (Sandbox Code Playgroud) 我试图计算字符向量中子字符串的出现次数.例如:
lookin<-c("babababa", "bellow", "ra;baba")
searchfor<-"aba"
str_count(lookin, searchfor)
Run Code Online (Sandbox Code Playgroud)
返回:2 0 1
但是,我希望它返回'3 0 1',但它没有在第一个项目的中间'aba'上拾取,因为它在第一个实例中被部分使用(我认为).
我发现了这个问题,但无法弄清楚如何使用具有多个项目的向量.
我需要在字符串"Count of"之后找到数字."Count of"字符串和数字之间可能有空格或符号.我有一些适用于www.regex101.com的东西,但不适用于stringr str_extract功能.
library(stringr)
shopping_list <- c("apples x4", "bag of flour", "bag of sugar", "milk x2", "monkey coconut 3oz count of 5", "monkey coconut count of 50", "chicken Count Of-10")
str_extract(shopping_list, "count of ([\\d]+)")
[1] NA NA NA NA "count of 5" "count of 50" NA
Run Code Online (Sandbox Code Playgroud)
我想得到什么:
[1] NA NA NA NA "5" "50" "10"
Run Code Online (Sandbox Code Playgroud) 我正在试图抓一个网页
library(RCurl)
webpage <- getURL("https://somewebpage.com")
webpage
<div class='CredibilityFacts'><span id='qZyoLu'><a class='answer_permalink'
action_mousedown='AnswerPermalinkClickthrough' href='/someurl/answer/my_id'
id ='__w2_yeSWotR_link'>
<a class='another_class' action_mousedown='AnswerPermalinkClickthrough'
href='/ignore_url/answer/some_id' id='__w2_ksTVShJ_link'>
<a class='answer_permalink' action_mousedown='AnswerPermalinkClickthrough'
href='/another_url/answer/new_id' id='__w2_ksTVShJ_link'>
class(webpage)
[1] "character"
Run Code Online (Sandbox Code Playgroud)
我试图提取所有的href值,但只有当它在answer_permalink类之前.
这个的输出应该是
[1] "/someurl/answer/my_id" "/another_url/answer/new_id"
Run Code Online (Sandbox Code Playgroud)
/ignore_url/answer/some_id应该被忽略,因为它先于another_class而不是answer_permalink类.
现在,我正在考虑采用正则表达式的方法.我认为像这样的东西可以用于正则表达式stri_extract_all
class='answer_permalink'.*href='
Run Code Online (Sandbox Code Playgroud)
但这不是我想要的.
我能以什么方式实现这一目标?而且,除了正则表达式之外,R中还有一个函数,我们可以像Javascript一样逐个提取元素吗?
我有以下类型的数据帧
df <- tibble::tribble(~x,
c("A", "B"),
c("A", "B", "C"),
c("A", "B", "C", "D"),
c("A", "B"))
Run Code Online (Sandbox Code Playgroud)
和这些矢量
vec1 <- c("A", "B")
vec2 <- c("A", "B", "C")
vec3 <- c("A", "B", "C", "D")
Run Code Online (Sandbox Code Playgroud)
我想改变一个变量y,它显示哪一行有哪个向量.我尝试了以下方法,但是获取带有警告的空y变量:"较长的对象长度不是较短对象长度的倍数"
df_new <- df %>%
mutate(y = case_when(x == vec1 ~ "vec1",
x == vec2 ~ "vec2",
x == vec2 ~ "vec3"))
Run Code Online (Sandbox Code Playgroud)
期望的输出是
df_new <- tibble::tribble(~x, ~y,
c("A", "B"), "vec1",
c("A", "B", "C"), "vec2",
c("A", "B", "C", "D"), "vec3",
c("A", "B"), "vec1")
Run Code Online (Sandbox Code Playgroud) 我想使用 str_detect 而不是将 "" 转换为另一个字符串模式。有没有一种简单的方法来处理现在生成警告的空字符串模式“”。我希望这能产生 TRUE、FALSE、FALSE、FALSE、FALSE
library( tidyverse )
str_detect('matt', c( "matt","joe","liz","", NA))
Run Code Online (Sandbox Code Playgroud) 我正在一个项目中,将PDF扫描将打字机写的《战争日记》笔记转换为文本。我可以成功提取(可能是90%的原始未调整大小的文件)提取主文本,然后我首先进行裁剪。
Reprex数据:您可以从图片开始或从下面提供的文字开始尝试。
我的挑战是保持文本的“每日”结构,该结构每天有7个段落或节,并且用“ \ n”或“ \ n \ n”进行拆分并不完全正确。
我正在为项目使用pdftools / stringr / tesseract / magick的组合:
library(tesseract)
library(dplyr)
library(stringr)
library(pdftools)
library(readr)
library(magick)
Run Code Online (Sandbox Code Playgroud)
使用方法:
image <- image_read("./test-data/page_1.png") #change to your path
text -> image %>%
image_crop(geometry_area(width = 1220, height = 900,
y_off = 260, x_off = 355)) %>%
image_resize("2000x") %>%
image_convert(type = 'Grayscale') %>%
image_trim(fuzz = 40) %>%
image_write(format = 'png', density = '300x300') %>%
tesseract::ocr()
Run Code Online (Sandbox Code Playgroud)
给出一个字符串:
[1] "Weather clear all day. A smaii arms inspection hela at i400 hrs. A …Run Code Online (Sandbox Code Playgroud) 如果已经被问过,请道歉,但我正在尝试“更改”向量中数字的数字顺序。
我们以这个向量为例:
vector = c("5213456","17235896","23731074")
Run Code Online (Sandbox Code Playgroud)
我希望得到如下结果:
"1234556","12356789","01233477"
Run Code Online (Sandbox Code Playgroud)
我知道问这个有点奇怪,但我的数据帧的一列中有数字组合,并且我发现了一些重复的情况,但无法使用简单的 unique() 函数或其他函数进行过滤,因为数字没有以相同的顺序排序方式。
多谢。