如何将包含非ASCII Unicode字符的班级字符的长向量转换为其逃脱版本?
我有一个R软件包,其中我有一个要与用户输入匹配的大学名称列表.名称列表包含特殊字符,这是在R CMD检查中生成警告: checking data for non-ASCII characters (855ms) Warning: found non-ASCII strings 理想情况下,我想将这些非ASCII Unicode角色转换为符合ASCII的ESCAPET版本,以摆脱此警告.我宁愿从数据 - raw文件夹中的数据生成脚本自动化该过程. 我认为我真的使用stringi::stri_escape_unicode()非常接近,但是它增加了一个额外的后斜线,很难摆脱.这是我尝试的reprex: uni
10 2024-03-07
编程技术问答社区
R中的错误: (只有源代码形式的软件包,可能需要编译C/C++/Fortran)
我正在尝试在R-Studio中安装" YAML"和" Stringi"软件包,并且它不断给我这些错误: > install.packages("stringi") Package which is only available in source form, and may need compilation of C/C++/Fortran: ‘stringi’ These will not be installed 或 > install.packages('yaml') Package which is only available in source form, and may need compilation of C/C++/Fortran: ‘yaml’ These will not be installed 如何使这些安装正确? 解决方案 错误是由于R无法在Cran上找到包装的二进制版本,而是仅找到软件包的 source 版本,您的Windows
1350 2023-12-25
编程技术问答社区
Xcode命令行工具更新后无法安装stringi
系统:MacOS Sierra 10.12.6 xcode :9.2(2347) r :3.4.0 rstudio :1.1.383 我正在尝试安装最新版本的Stringi(1.1.6).这是不可能的,因为最近对Xcode的更新.收到的错误是configure: error: C compiler cannot create executables,此处有完整的输出: Installing package into ‘/usr/local/lib/R/3.4/site-library’ (as ‘lib’ is unspecified) trying URL 'http://cran.rstudio.com/src/contrib/stringi_1.1.6.tar.gz' Content type 'application/x-gzip' length 3647049 bytes (3.5 MB) ===================================
34 2023-12-18
编程技术问答社区
pkgdown能在Ubuntu中构建,但不能在Windows中构建:参数`str`应该是一个字符向量
我已经问过类似以前的问题.我做了更多的挖掘,并使这个问题尽可能最小和可重复: 首先,我创建了一个新的软件包如下所述并建立了一个用pkgdown的网站.这是按预期构建网站的: pkgdown::build_site() Initialising site ------------------------------------------------------------------ Copying 'C:/Users/name/Documents/R/win-library/3.3/pkgdown/assets/jquery.sticky-kit.min.js' Copying 'C:/Users/name/Documents/R/win-library/3.3/pkgdown/assets/link.svg' Copying 'C:/Users/name/Documents/R/win-library/3.3/pkgdown/assets/pkgdown.css' Cop
8 2023-12-07
编程技术问答社区
在R中把口音转换为ASCII
我正在尝试将特殊字符转换为R中的ASCII. -files">此问题: stringi::stri_trans_general('Jos\xe9', 'latin-ascii') ,但我得到了" Jos".我正在使用Stringi v1.1.1. 我正在运行一个Mac.我正在运行Windows机器的朋友似乎得到了" Jose"的理想结果. 任何想法发生了什么事? 解决方案 Windows上的默认编码与其他操作系统(UTF-8)上的典型默认编码不同. x ='Jos\xe9'意味着某件事 Latin1,但不在UTF-8中.因此,在Linux或OS X上,您需要告诉R编码是什么: x ='Jos\xe9' Encoding(x)
18 2023-11-06
编程技术问答社区
用filter()和str_detect()进行多模式过滤
我想使用filter()和str_detect()匹配多个模式,而没有多个str_detect()函数调用.在下面的示例中,我想过滤dataframe df仅显示包含字母a f和o的行 df % filter( str_detect(.$letters, "a")| str_detect(.$letters, "f")| str_detect(.$letters, "o") ) # numbers letters #1 1 a #2 6 f #3 15 o #4 27 a #5 32 f #6 41 o 我尝试了以下 df %>% filter(
340 2023-10-21
编程技术问答社区
安装stringr, stringi "Error: package or namespace load failed for 'stringi' in dyn.load(file, DLLpath = DLLpath, ...) "和共享对象问题
我使用的是Fedora 32,从源最新的R 4.0.2编译(即使在另一个清洁安装3.6.3的安装下,问题仍然存在). 我有这个错误 > install.packages("stringi") Installing package into ‘/home/andrespara/R/x86_64-pc-linux-gnu-library/4.0’ (as ‘lib’ is unspecified) probando la URL 'https://espejito.fder.edu.uy/cran/src/contrib/stringi_1.4.6.tar.gz' Content type 'application/x-gzip' length 7284354 bytes (6.9 MB) ================================================== downloaded 6.9 MB * installing *source* pack
182 2023-10-03
编程技术问答社区
用不同的替换值依次替换字符串中与单一模式匹配的多个位置
使用stringr软件包,以矢量化的方式易于执行正则替换. 问题:我该怎么做: 替换 中的每个单词 hello,world??your,make|[]world,hello,pos 到不同的替代品,例如增加数字 1,2??3,4|[]5,6,7 请注意,不能假设简单的分离器,实际用例更为复杂. stringr::str_replace_all似乎不起作用,因为它 str_replace_all(x, "(\\w+)", 1:7) 为每个单词应用于所有替换的矢量,或 不确定和/或重复的输入条目,以便 str_replace_all(x, c("hello" = "1", "world" = "2", ...)) 将无法为此目的工作. 解决方案 这是使用gsubfn的另一个想法. pre函数是在替换之前运行的,并且每个替换运行fun函数: library(gsubfn) x
52 2023-10-03
编程技术问答社区
R包安装时间长-源码或二进制类型
正在尝试使用以下命令 安装一个称为stringi的软件包 install.packages("stringi") 尽管它没有输入任何错误消息,但安装尚未结束. 我在控制台屏幕上看到了很多消息,这些消息一直在运行超过45分钟 > install.packages("stringi") Installing package into ‘C:/Users/Aks/Documents/R/win-library/3.6’ (as ‘lib’ is unspecified) There is a binary version available but the source version is later: binary source needs_compilation stringi 1.4.6 1.5.3 TRUE installing the source package ‘stringi’ trying URL
26 2023-10-03
编程技术问答社区
安装软件包'stringr'和'stringi'的退出状态为非零
请帮助我在R中安装stringr和stringi软件包.结果是: install.packages("stringi") Installing package into ‘C:/Users/kozlovpy/Documents/R/win-library/3.2’ (as ‘lib’ is unspecified) пробую URL 'https://mran.revolutionanalytics.com/snapshot/2015-08-27/bin/windows/contrib/3.2/stringi_0.5-5.zip' Error in download.file(url, destfile, method, mode = "wb", ...) : не могу открыть URL 'https://mran.revolutionanalytics.com/snapshot/2015-08-27/bin/windows/contrib/3.2/strin
66 2023-10-03
编程技术问答社区
提取"/"之前和之后的字符
我试图在"/"之前和之后提取角色,但没有成功.句子是: XXXX YYY ZZZ - AV HAHEHRS, 3061 - SDDW ASDA DDSF - SAO JOSE DOS CAMPOS / SP - CEP: 00000-000 输出应为 SAO JOSE DOS CAMPOS / SP 我正在尝试str_extract(str, "- [a-zA-Z]{1,} / [a-zA-Z]{1,}"),但它只是带给我 CAMPOS / SP 解决方案 在您的正则时刻,缺少空间.尝试: str_extract(str, "- [a-zA-Z ]+ / [a-zA-Z ]+") 注意角色类中的空间.另外,{1,}是+的长​​形式. 比赛将为"- SAO JOSE DOS CAMPOS / SP - CEP".您必须在第二步中摆脱-,或者使用零宽的外观: str_extract(str, "(?
26 2023-10-03
编程技术问答社区
将HTML实体转换为适当的字符R
有人知道R中可以将ä转换为其Unicode字符â的通用函数吗?我已经看到一些功能涉及â,并将其转换为正常字符.任何帮助,将不胜感激.谢谢. 编辑:以下是数据记录,我可能拥有超过100万个记录.除了将数据阅读到大量的向量外,还有更容易的解决方案吗?对于每个元素,更改记录? wine/name: 1999 Domaine Robert Chevillon Nuits St. Georges 1er Cru Les Vaucrains wine/wineId: 43163 wine/variant: Pinot Noir wine/year: 1999 review/points: N/A review/time: 1337385600 review/userId: 1 review/userName: Eric review/text: Well this is awfully gorgeous, especially with a nicely grilled pie
12 2023-10-03
编程技术问答社区
粘贴"、"str_c"、"str_join"、"stri_join"、"stri_c"、"stri_paste "之间的区别?
所有这些看起来非常相似的功能之间有什么区别? 解决方案 stri_join,stri_c和stri_paste来自软件包 stringi ,是纯别名 str_c来自 stringr ,只是stringi::stri_join,带有参数ignore_null硬编码为TRUE,而stringi::stri_join stringi::stri_join是否将其设置为 by默认. stringr::str_join是str_c 的弃用别名 请参阅: library(stringi) identical(stri_join, stri_c) # [1] TRUE identical(stri_join, stri_paste) # [1] TRUE library(stringr) str_c # function (..., sep = "", collapse = NULL) # { # stri_c(..., sep = sep, collaps
20 2023-10-03
编程技术问答社区
在一个字符串中按索引快速替换多个字符
我试图用其他字符快速替换字符串中的多个字符,例如* 例如,我有一个字符串,例如: string = "abcdefghij" 我还有一个索引向量,该向量指示我想用另一个字符的字符串中的字母在哪里替换字母. string_indexes_replaced = c(1, 4, 6, 9) 所需的输出: "*bc*e*gh*j" 我所做的 我尝试了一种非常新手的方法,例如将字符分配到列表中,用*替换字符,然后将列表折叠回所需的字符串,如下所示: library(dplyr) library(stringi) string%>% strsplit(split = "")%>% lapply(function(x) replace(x, string_indexes_replaced, rep("*", length(string_indexes_replaced))))%>% lapply(stri_flatten)%>% unlist(use.
142 2023-10-02
编程技术问答社区
gsub速度与图案长度的关系
我最近一直在广泛使用gsub,我注意到短图案的运行速度比长图更快,这并不奇怪.这是一个完全可重现的代码: library(microbenchmark) set.seed(12345) n = 0 rpt = seq(20, 1461, 20) msecFF = numeric(length(rpt)) msecFT = numeric(length(rpt)) inp = rep("aaaaaaaaaa",15000) for (i in rpt) { n = n + 1 print(n) patt = paste(rep("a", rpt[n]), collapse = "") #time = microbenchmark(func(count[1:10000,12], patt, "b"), times = 10) timeFF = microbenchmark(gsub(patt, "b", inp, fixed=F), times = 10) m
22 2023-10-01
编程技术问答社区