在迁移到新电脑并安装RStudio 1.4.1717后,我在运行在RStudio1.3.959下编写的代码时遇到了问题。当通过基R(4.1.0(运行代码时,也会出现同样的错误。当使用基R函数(grep,gregexpr,例如gregexper("[:alpha:]+","1234a"((时,不会出现错误消息。
代码:
library(tidyverse)
data_files <- as.data.frame(list.files(data_folder))
data_files <- data_files %>%
mutate(temp = data_files[,1]) %>%
separate("temp",
c("temp", "Trash"),
sep = "\.") %>%
select(-"Trash") %>%
separate("temp",
c("run", "Trash"),
sep = "[:alpha:]+",
remove = FALSE) %>%
select(-"Trash") %>%
separate("temp",
c("Trash", "letters"),
sep = "[:digit:]+") %>%
select(-"Trash") %>%
select("run", "letters")
我的data_folder包含具有名称模式的csv文件(date-increment-letter.csv,例如21021202a.csv(
错误消息:
Error in gregexpr(pattern, x, perl = TRUE) :
invalid regular expression '[:alpha:]+'
In addition: Warning message:
In gregexpr(pattern, x, perl = TRUE) : PCRE pattern compilation error
'POSIX named classes are supported only within a class'
at '[:alpha:]+'
使用dput:的可复制示例
data_files <- as.data.frame(list.files(icpms_folder))
dput(head(data_files))
structure(list(list.files(icpms_folder) = c("21021202a.csv",
"21021202b.csv",
"21021202c.csv",
"21021203a.csv",
"21021203b.csv",
"21021203c.csv")),
row.names = c(NA, 6L), class = "data.frame")
你能告诉我我新安装的东西少了什么吗?
提前谢谢!
;为什么";已在错误消息中:POSIX命名类仅在类中受支持。
POSIX命名类类似于[:digit:]
、[:alpha:]
等。
通过">类";,消息作者指的是字符类,即[...]
。
把一个放在另一个里面:
sep = '[[:alpha:]]+'