R 字符串操作超全总结
- paste函数和paste0()函数 连接字符
> paste("a", 1:3) #默认空格符连接,即sep=" "
[1] "a 1" "a 2" "a 3"
> paste("a",1:3, sep = "") #a自动与每个元素连接
[1] "a1" "a2" "a3"
> paste("a",1:4,".csv", sep = "") #批量输出文件名
[1] "a1.csv" "a2.csv" "a3.csv" "a4.csv"
> #sep连接的是元素间的扩展,collapse是一种元素间的折叠坍缩
> paste("a", 1:3, sep = "", collapse = "+")
[1] "a1+a2+a3"
> paste(c("a","b"), 1:5, sep = "") #超出范围后继续从前向后连接
[1] "a1" "b2" "a3" "b4" "a5"
> paste0(c("a","b"), 1:5) #默认不加空格sep=""连接,这是与paste()函数的唯一不同
[1] "a1" "b2" "a3" "b4" "a5"
#下列命令可将barcode列的字符后都加上“-1”
predict_result$barcode <- paste(predict_result$barcode,"-1", sep = "")
- substr/substring 提取或替换字符串向量中的字符
substr(x, start, stop)
substring(text, first, last = 1000000L)
substr(x, start, stop) <- value
substring(text, first, last = 1000000L) <- value
注:x/text:字符向量;start/first:整数,要替换的第一个元素;stop/last:要替换的最后一个元素;value:字符向量
> substr(rep("abcdef", 4), 1:4, 4:5)
[1] "abcd" "bcde" "cd" "de"
> x <- c("asfef", "qwerty", "yuiop[", "b", "stuff.blah.yech")
> substr(x, 2, 5)
[1] "sfef" "wert" "uiop" "" "tuff"
> substring(x, 2, 4:6)
[1] "sfe" "wert" "uiop[" "" "tuff"
> substr(x, 1, 3) <- c("aaa", "bcd", "s","ee")#替换
> x
[1] "aaaef" "bcdrty" "suiop[" "e"
[5] "aaaff.blah.yech"
- nchar(x) 计算字符串长度
> x <- c("asfef", "qwerty", "yuiop[", "b", "stuff.blah.yech")
> nchar(x) #计算字符串长度
[1] 5 6 6 1 15
- chartr()转化字符串向量中的字符串
> a <- c("aBcdEf","1234","AbwSxT")
> chartr("abS","WHY",a) #注意在转换的过程中区分大小写
[1] "WBcdEf" "1234" "AHwYxT"
- tolower(x)和toupper(x) 字符串大小写转换函数
> a <- c("aBcdEf","1234","AbwSxT")
> tolower(a) #将大写字母转换成小写
[1] "abcdef" "1234" "abwsxt"
> toupper(a) #将小写字母转换成大写
[1] "ABCDEF" "1234" "ABWSXT"
> casefold(a, upper = FALSE)
[1] "abcdef" "1234" "abwsxt"
> casefold(a, upper = TRUE)
[1] "ABCDEF" "1234" "ABWSXT"
- stringr包
按照特定的字符拆分字符串:str_split
str_split(string, pattern, n = Inf, simplify = FALSE)
str_split_fixed(string, pattern, n)
str_locate() 返回首个匹配模式的字符的位置
str_locate_all() 返回所有匹配模式的字符的位置
> library(stringr)
> hw <- "IGHV3-30*18, IGHV3-30-5*01"
> a <- str_split(hw, ",")#默认输出结果是一个列表
> class(a)
[1] "list"
> b <- str_split(hw, ",", simplify = TRUE) #当参数simplify=T时,输出结果是矩阵
> b
[,1] [,2]
[1,] "IGHV3-30*18" " IGHV3-30-5*01"
> ##提取字符串中的特定字符
> c <- str_sub(b[,1],1, str_locate(b[,1], "\\*")[1]-1)
> c
[1] "IGHV3-30"
> #"."表示除了换行符以外的任一字符。将1.2以“.”分割开需要用到[.]
> d <- c("bcfe","12.333")
> str_split(d, "[.]", simplify = TRUE)
[,1] [,2]
[1,] "bcfe" ""
[2,] "12" "333"
R 字符串操作超全总结的更多相关文章
- 一句python,一句R︱python中的字符串操作、中文乱码
先学了R,最近刚刚上手python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句python,对应写一句R. pandas可谓如雷贯耳,数据处理神器. 以下符号: = ...
- 【Redis】命令学习笔记——字符串(String)(23个超全字典版)
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). 本篇基于redis 4.0.11版本,学习字符串( ...
- 一句python,一句R︱python中的字符串操作、中文乱码、NaN情况
一句python,一句R︱python中的字符串操作.中文乱码.NaN情况 先学了R,最近刚刚上手Python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句pytho ...
- s14 第5天 时间模块 随机模块 String模块 shutil模块(文件操作) 文件压缩(zipfile和tarfile)shelve模块 XML模块 ConfigParser配置文件操作模块 hashlib散列模块 Subprocess模块(调用shell) logging模块 正则表达式模块 r字符串和转译
时间模块 time datatime time.clock(2.7) time.process_time(3.3) 测量处理器运算时间,不包括sleep时间 time.altzone 返回与UTC时间 ...
- R学习笔记 第五篇:字符串操作
文本数据存储在字符向量中,字符向量的每个元素都是字符串,而非单独的字符.在R中,可以使用双引号,或单引号表示字符,函数nchar用于获得字符串中的字符数量: > s='read' > nc ...
- R语言学习 第五篇:字符串操作
文本数据存储在字符向量中,字符向量的每个元素都是字符串,而非单独的字符.在R中,可以使用双引号,或单引号表示字符. 一,字符串中的字符数量 函数nchar()用于获得字符串中的字符数量: > s ...
- C语言字符串操作总结大全(超详细)
本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat( ...
- C语言学习笔记 (008) - C语言字符串操作总结大全(超详细)(转)
1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...
- C语言字符串操作总结大全(超具体)
1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...
- C语言字符串操作总结大全(超详细)【转】
转自:http://www.jb51.net/article/37410.htm )字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strc ...
随机推荐
- PAT-basic-1023 组个最小数 java
一.题目 给定数字 0-9 各若干个.你可以以任意顺序排列这些数字,但必须全部使用.目标是使得最后得到的数尽可能小(注意 0 不能做首位).例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的 ...
- C++ push_back()函数应用
最近在学习Opencv,用C++写程序,做了一个虚拟画笔的项目,即通过摄像头采集视频图像信息,识别视频中的画笔,并画笔在空中的划痕显示在视频图像上.在进行到划痕显示的,由于视频是实时采集的,检测到的画 ...
- 21 forms组件-参数initial&instance应用
简单来讲: 如果你想传入前端的页面中附带值,那么在实例化forms中: form = SecondModelForm(data=request.POST, instance=permission_ob ...
- MBR与GPT[转]
MBR分区 MBR的意思是"主引导记录",是IBM公司早年间提出的.它是存在于磁盘驱动器开始部分的一个特殊的启动扇区. 这个扇区包含了已安装的操作系统系统信息,并用一小段代码来启动 ...
- int 和vachar后面的数字代表的含义
在创建数据表的时候,我们经常会给每一个字段设置一个长度,例如:int(5).varchar(10) 等等,但是他们代表的意思是什么呢?是该列允许存储值的最大宽度吗? 场景1:为什么我设置成 int(1 ...
- 攻防(一)tomcat CVE-2020-1938 ftp 21端口
TOMCAT kali自带POE msf6 > use auxiliary/admin/http/tomcat_ghostcat set RHOST 10.98.xx.xx msf6 auxil ...
- 第一个程序,Hello,World!
Hello World 创建一个文件夹,存放代码 新建一个java文件 后缀名为.java 编写代码 public class Hello{ public static void main(st ...
- 5ppm高精度自动同步标准化考场时钟系统
自动同步标准化考场时钟系统------专业LED时钟厂家![点击进入] 学校考场医院车站GPS/NTP网络校时之组联网对时精度达5ppm原理剖析. 时间精度是根据各个用户所要求对LE ...
- Java中集合基础相关知识
1.集合基础 1.1 集合概述 编程的时候如果需要存储多个数据使用长度固定的数据存储,适应不了元素个数变化的需求,这时候我们就需要用集合. 集合类的特点:提供了一种存储空间可变的存储模型,存储的数据容 ...
- linux 文件系统和包管理工具rpm,yum
文件系统 1.什么是文件系统? 文件系统是一种存储和组织计算机中数据文件的机制或方法,他使得对计算机内的数据的存储.访问和查找变得更容易,简单. 文件系统落到计算机里其实就是一个应用软件 ext2 e ...