我试图在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"任何帮助将不胜感激.
我在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) 假设我使用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) 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不幸的是它不起作用。
我想从我的数据框中删除包含左括号"("的行.
我尝试了以下方法:
df[!grepl("(", df$Name),]
Run Code Online (Sandbox Code Playgroud)
但这并没有追查(标志
如何使用 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 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
我在 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)
那没有产生预期的结果。我怎样才能完成同样的事情
考虑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 检查字符串是否至少包含以下字符之一:/\:*?"<>|。另外,我希望该字符串可以包含任何其他字符,例如-。
实际上这些字符是 Windows 目录(文件夹)名称中不允许使用的字符。
r ×10
regex ×5
dplyr ×2
gsub ×2
stringr ×2
dataframe ×1
escaping ×1
grep ×1
grepl ×1
latex ×1
markdown ×1
pcre ×1
r-markdown ×1
regex-group ×1
str-replace ×1