相关疑难解决方法(0)

1653
推荐指数
16
解决办法
66万
查看次数

正则表达式删除字母和点组合

我试图在R中使用正则表达式来删除文本 - "X"或"X". - 从一个数字的前面.我是正则表达式的新手,并且很难让它工作.我尝试了X和的每个组合.有或没有我能想到的逃脱角色,包括:

  • str_replace("X.4.89294e-05", "X.",'')结果"4.89294e-05"str_replace("X4.89294e-05", "X.",'')结果失败".89294e-05"
  • str_replace("X.4.89294e-05", "[X.]",'') 结果 ".4.89294e-05"
  • str_replace("X.4.89294e-05", "[X/.?]",'') 结果 ".4.89294e-05"
  • str_replace("X.4.89294e-05", "[X//.?]",'') 结果 ".4.89294e-05"
  • str_replace('X.4.89294e-0','X/.{0,1}','') 结果 "X.4.89294e-0"
  • str_replace('X.4.89294e-0','[X/.{0,1}]','') 结果 ".4.89294e-0"

任何帮助将不胜感激.

regex r str-replace

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

在grep中,"'\''是一个无法识别的逃脱"

我在R中的一些项目中使用grep(使用perl=TRUE标志)并且在我的生活中我无法弄清楚为什么R不断抛出错误.我的查询如下:

d$SomeColumn[grep("(?ix)<VNW[^;]*;(dis|dat)> \w*<N\(", d$Right, perl=TRUE)] <- 1
Run Code Online (Sandbox Code Playgroud)

但是,R抛出以下错误:

Error: '\w' is an unrecognized escape in character string starting ""<VNW[^;]*;(dis|dat)> \w"
Run Code Online (Sandbox Code Playgroud)

regex grep pcre r

9
推荐指数
1
解决办法
5974
查看次数

如何从R中的字符串中删除+(加号)?

假设我使用gsub并想从字符串中删除以下(=,+, - )符号并用下划线替换.

当我尝试使用带加号(+)的gsub时,有人可以描述发生了什么.

test<- "sandwich=bread-mustard+ketchup"
# [1] "sandwich=bread-mustard+ketchup"

test<-gsub("-","_",test)
# [1] "sandwich=bread_mustard+ketchup"

test<-gsub("=","_",test)
# [1] "sandwich_bread_mustard+ketchup"

test<-gsub("+","_",test)
#[1] "_s_a_n_d_w_i_c_h___b_r_e_a_d___m_u_s_t_a_r_d_+_k_e_t_c_h_u_p_"
Run Code Online (Sandbox Code Playgroud)

r gsub stringr

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

R中是否可以转义“[”

 a = list("a","b","cdef", "[")
 grep("a",a)
 #[1] 1
 grep("[",a)
 #Error during wrapup: invalid regular expression '[', reason 'Missing ']''
 grep('\[',a)
 #Error during wrapup: '\[' is an unrecognized escape in character string starting "'\["
 grep("\[",a)
 #Error during wrapup: '\[' is an unrecognized escape in character string starting ""\["
 grep("\133",a)
 #Error during wrapup: invalid regular expression '[', reason 'Missing ']''
Run Code Online (Sandbox Code Playgroud)

我想根据这里找到的信息执行“\133”:http://cran.r-project.org/doc/manuals/R-lang.html#Literal-constants不幸的是它不起作用。

r escaping

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

如何删除具有特殊字符的行?

我想从我的数据框中删除包含左括号"("的行.

我尝试了以下方法:

df[!grepl("(", df$Name),] 
Run Code Online (Sandbox Code Playgroud)

但这并没有追查(标志

regex r dataframe grepl

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

在 dplyr 中选择带有特殊字符的名称

如何使用 dplyr::select 而不是使用列索引取消选择名为“(Intercept)”的列?

library(dplyr)
library(tibble)

tib<-tribble(~"(Intercept)",~b,
              80,3,
              80,4,
              80,4)

tib[,-1] # works

select(tib,eval(parse(("-(Intercept)")))) # does not work
select(tib,as.name(("-(Intercept)"))) # does not work 
select(tib,-"\(Intercept\)") # does not work
Run Code Online (Sandbox Code Playgroud)

谢谢&亲切的问候

r dplyr

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

R Markdown 代码块不显示数学方程

基本上我想用 R Markdown 构建一个随机选择题生成器。对于这个任务,markdown 的代码块中需要有方程。

下面的工作就像一个魅力,并给出了等式“greekbeta = 1”

---
title: "test"
author: "me"
output:
    word_document: default
---

```{r eval=TRUE, echo=FALSE,results = "asis"}
"$\beta = 1$"
```  
Run Code Online (Sandbox Code Playgroud)

相反,当使用其他数学符号时,这将不起作用,例如:

---
title: "test"
author: "me"
output:
    word_document: default
---

```{r eval=TRUE, echo=FALSE,results = "asis"}
"$\sum_{n=1}^{\infty}$"
``` 
Run Code Online (Sandbox Code Playgroud)

按下 knit 后,出现错误(不幸的是,错误消息是德语,基本上是这样的:“'\s' 是字符串中以“$/s”开头的未知转义序列)。

我对此感到非常困惑,尤其是因为例如 \frac{1}{2} 有效,但 \hat{x} 无效。“正常”降价文本中的方程完全没有问题。但是对于我的任务,方程式必须在代码块部分中。

有人有解决此问题的方法吗?我尝试使用“$\hat{x}$”甚至“$$\hat{x}$”,但错误消息仍然相同。我正在使用 pandoc 2.11.4、R 4.1.0 和 knitr 1.33

markdown latex r r-markdown

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

gsub无法删除R中的空括号

我在 R 中有以下字符串

A<-"A (23) 56 hh()"
Run Code Online (Sandbox Code Playgroud)

我想得到以下输出

"A (23) 56 hh"
Run Code Online (Sandbox Code Playgroud)

我尝试了以下代码

B<-gsub(pattern = "()", replacement = "", x = A)
Run Code Online (Sandbox Code Playgroud)

那没有产生预期的结果。我怎样才能完成同样的事情

regex r gsub

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

字符串在列中的操作

考虑data.frame可以说:

df <- data_frame(id = c(1, 1, 2, 2), n = c("100+", "50+", "30+", "40+"))
Run Code Online (Sandbox Code Playgroud)

n应是转换为c("100","50","30","40")通过使用str_replace()dplyr库.

我需要这样的东西来工作:

library(dplyr)
library(stringr)

df %>%
  mutate(n = str_replace("+",""))
Run Code Online (Sandbox Code Playgroud)

必须有一种适当的方法来str_replace()为具有dplyr的列应用函数.

r stringr dplyr

0
推荐指数
1
解决办法
2986
查看次数

R,检查字符串中是否有特殊字符

如何使用 R 检查字符串是否至少包含以下字符之一:/\:*?"<>|。另外,我希望该字符串可以包含任何其他字符,例如-

实际上这些字符是 Windows 目录(文件夹)名称中不允许使用的字符。

r

0
推荐指数
1
解决办法
9083
查看次数