相关疑难解决方法(0)

如何在R字符串中转义反斜杠

我正在使用R将字符串写入文件:

> x1="\\str"
> x2="\\\str"
Error: '\s' is an unrecognized escape in character string starting "\\\s"
> x2="\\\\str"
> write(file='test',c(x1,x2))
Run Code Online (Sandbox Code Playgroud)

当我打开名为的文件时test,我看到了这个:

\str
\\str
Run Code Online (Sandbox Code Playgroud)

如果我想得到一个包含5个反斜杠的字符串,我应该写10个反斜杠,像这样吗?

x="\\\\\\\\\\str" 
Run Code Online (Sandbox Code Playgroud)

file-io r escaping backslash

14
推荐指数
3
解决办法
4万
查看次数

R:如何用*single*反斜杠和空格('\')替换字符串中的空格('')

我已经多次搜索,但在这里或其他地方找不到答案.我想用一个替换' '包含文件名的变量中的每个空格'\ '.(一个用例可能是shell命令,空格被转义,因此每个文件名都不会显示为参数列表.)我已经查看了StackOverflow问题"如何替换R中的单个反斜杠",并找到了许多组合确实像宣传的那样工作:

> gsub(" ", "\\\\", "a b")
[1] "a\\b"

> gsub(" ", "\\ ", "a b", fixed = TRUE)
[1] "a\\ b"
Run Code Online (Sandbox Code Playgroud)

但尝试使用单斜杠版本,R忽略它:

> gsub(" ", "\\ ", "a b")
[1] "a b"

> gsub(" ", "\ ", "a b", fixed = TRUE)
[1] "a b"
Run Code Online (Sandbox Code Playgroud)

对于相反方向的情况 - 从字符串中删除斜杠,它适用于两个:

> gsub("\\\\", " ", "a\\b")
[1] "a b"

> gsub("\\", " ", "a\\b", fixed = TRUE)
[1] "a b"
Run Code Online (Sandbox Code Playgroud)

但是,对于单斜线,R中的一些内部反常阻止我甚至试图删除它们:

> gsub("\\", " …
Run Code Online (Sandbox Code Playgroud)

regex replace r

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

R中的向量而不是数据帧上的dplyr过滤器

这似乎是一个简单的问题,但是我还没有找到一个干净的解决方案。我在R中有一个向量,并且我想从向量中删除某些元素,但是出于各种原因,我想避免使用vector [vector!=“ thiselement”]表示法。特别是,这是我正在尝试做的事情:

# this doesnt work
all_states = gsub(" ", "-", tolower(state.name)) %>% filter("alaska")

# this doesnt work either
all_states = gsub(" ", "-", tolower(state.name)) %>% filter(!= "alaska")

# this does work but i want to avoid this approach to filtering
all_states = gsub(" ", "-", tolower(state.name))
all_states = all_states[all_states != "alaska"]
Run Code Online (Sandbox Code Playgroud)

可以用简单的方式做到吗?在此先感谢您的帮助!

编辑-我为此苦苦挣扎的原因是因为我只在网上找到有关基于数据帧的列进行过滤的内容,例如:

my_df %>% filter(col != "alaska")
Run Code Online (Sandbox Code Playgroud)

但是我在这里使用向量而不是数据帧

r dplyr

5
推荐指数
2
解决办法
4539
查看次数

从字符串中删除反斜杠

我正在从txt文件中读取文本并将内容传递给SQL.SQL文本包含双引号并导致问题.我想删除下面字符串中的"\",以便将其发送到SQL

  test<- "select case when \"est\"  dsaf"
  test<-  cat(test, sep="")
  class(test)
Run Code Online (Sandbox Code Playgroud)

返回一个UNQUOTED null对象

> test<- "select case when \"est\"  dsaf"
>   test<-  cat(test, sep="")
select case when "est"  dsaf
>   class(test)
[1] "NULL"
Run Code Online (Sandbox Code Playgroud)

当我将未加引号的字符串传递给SQL时,我收到此错误:

Error in odbcQuery(channel, query, rows_at_time) : 
  'getCharCE' must be called on a CHARSXP
Run Code Online (Sandbox Code Playgroud)

我希望它返回引导和尾随引号,然后我可以将它发送到SQl,它将工作.

[1] "select case when "est"  dsaf"
Run Code Online (Sandbox Code Playgroud)

r r-faq

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

用一个反斜杠替换空白区域

我想用一个反斜杠和一个像这样的空格替换一个空格:

"foo bar" --> "foo\ bar"
Run Code Online (Sandbox Code Playgroud)

我发现如何用多个反斜杠替换,但无法将其调整为单个反斜杠.

到目前为止我试过这个:

x <- "foo bar" 
gsub(" ", "\\ ", x)
# [1] "foo bar"

gsub(" ", "\\\ ", x)
# [1] "foo bar"

gsub(" ", "\\\\ ", x)
# [1] "foo\\ bar"
Run Code Online (Sandbox Code Playgroud)

但是,所有结果都不能满足我的需求.我需要替换来动态创建包含名称相似的文件夹的文件路径

/some/path/foo bar/foobar.txt.

用它们来在shell命令system()空格已经到了退出\

/some/path/foo\ bar/foobar.txt.

你知道如何解决这个问题吗?

regex replace r character

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

标签 统计

r ×5

regex ×2

replace ×2

backslash ×1

character ×1

dplyr ×1

escaping ×1

file-io ×1

r-faq ×1