• 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 字符串操作超全总结的更多相关文章

  1. 一句python,一句R︱python中的字符串操作、中文乱码

    先学了R,最近刚刚上手python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句python,对应写一句R. pandas可谓如雷贯耳,数据处理神器. 以下符号: = ...

  2. 【Redis】命令学习笔记——字符串(String)(23个超全字典版)

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). 本篇基于redis 4.0.11版本,学习字符串( ...

  3. 一句python,一句R︱python中的字符串操作、中文乱码、NaN情况

    一句python,一句R︱python中的字符串操作.中文乱码.NaN情况 先学了R,最近刚刚上手Python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句pytho ...

  4. 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时间 ...

  5. R学习笔记 第五篇:字符串操作

    文本数据存储在字符向量中,字符向量的每个元素都是字符串,而非单独的字符.在R中,可以使用双引号,或单引号表示字符,函数nchar用于获得字符串中的字符数量: > s='read' > nc ...

  6. R语言学习 第五篇:字符串操作

    文本数据存储在字符向量中,字符向量的每个元素都是字符串,而非单独的字符.在R中,可以使用双引号,或单引号表示字符. 一,字符串中的字符数量 函数nchar()用于获得字符串中的字符数量: > s ...

  7. C语言字符串操作总结大全(超详细)

    本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作  strcpy(p, p1) 复制字符串  strncpy(p, p1, n) 复制指定长度字符串  strcat( ...

  8. C语言学习笔记 (008) - C语言字符串操作总结大全(超详细)(转)

    1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...

  9. C语言字符串操作总结大全(超具体)

    1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...

  10. C语言字符串操作总结大全(超详细)【转】

    转自:http://www.jb51.net/article/37410.htm )字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strc ...

随机推荐

  1. PAT-basic-1023 组个最小数 java

    一.题目 给定数字 0-9 各若干个.你可以以任意顺序排列这些数字,但必须全部使用.目标是使得最后得到的数尽可能小(注意 0 不能做首位).例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的 ...

  2. C++ push_back()函数应用

    最近在学习Opencv,用C++写程序,做了一个虚拟画笔的项目,即通过摄像头采集视频图像信息,识别视频中的画笔,并画笔在空中的划痕显示在视频图像上.在进行到划痕显示的,由于视频是实时采集的,检测到的画 ...

  3. 21 forms组件-参数initial&instance应用

    简单来讲: 如果你想传入前端的页面中附带值,那么在实例化forms中: form = SecondModelForm(data=request.POST, instance=permission_ob ...

  4. MBR与GPT[转]

    MBR分区 MBR的意思是"主引导记录",是IBM公司早年间提出的.它是存在于磁盘驱动器开始部分的一个特殊的启动扇区. 这个扇区包含了已安装的操作系统系统信息,并用一小段代码来启动 ...

  5. int 和vachar后面的数字代表的含义

    在创建数据表的时候,我们经常会给每一个字段设置一个长度,例如:int(5).varchar(10) 等等,但是他们代表的意思是什么呢?是该列允许存储值的最大宽度吗? 场景1:为什么我设置成 int(1 ...

  6. 攻防(一)tomcat CVE-2020-1938 ftp 21端口

    TOMCAT kali自带POE msf6 > use auxiliary/admin/http/tomcat_ghostcat set RHOST 10.98.xx.xx msf6 auxil ...

  7. 第一个程序,Hello,World!

    Hello World 创建一个文件夹,存放代码 新建一个java文件 后缀名为.java 编写代码 public class Hello{    public static void main(st ...

  8. 5ppm高精度自动同步标准化考场时钟系统

    自动同步标准化考场时钟系统------专业LED时钟厂家![点击进入]   学校考场医院车站GPS/NTP网络校时之组联网对时精度达5ppm原理剖析.        时间精度是根据各个用户所要求对LE ...

  9. Java中集合基础相关知识

    1.集合基础 1.1 集合概述 编程的时候如果需要存储多个数据使用长度固定的数据存储,适应不了元素个数变化的需求,这时候我们就需要用集合. 集合类的特点:提供了一种存储空间可变的存储模型,存储的数据容 ...

  10. linux 文件系统和包管理工具rpm,yum

    文件系统 1.什么是文件系统? 文件系统是一种存储和组织计算机中数据文件的机制或方法,他使得对计算机内的数据的存储.访问和查找变得更容易,简单. 文件系统落到计算机里其实就是一个应用软件 ext2 e ...