• 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. 在控制台中输入msqyl一直报ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost'错误

    错误: 在绿色Mysql的bin文件下打开cmd,输入mysql,一直报ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' ...

  2. Spring入门之使用 spring 的 IOC 解决程序耦合(Spring环境搭建)(03-01)

    3.1 案例的前期准备 1.使用的案例是:账户的业务层和持久层的依赖关系解决(就是有两个账户实现转账之类的事情,后期继续用这个案例)2.准备环境:在开始 spring 的配置之前,我们要先准备一下环境 ...

  3. 19 request请求数据大全

    1 request.path_info # 获取当前用户请求的url # http://127.0.0.1:8000/customer/list/ ----> /customer/list/ # ...

  4. python 读取ini文件内容

    1 import configparser 2 cfgini = "D:\\123.ini" 3 conf = configparser.ConfigParser() 4 conf ...

  5. git合并指定分支的commit到主干上

    1.先切换分支到master git checkout master 2.目前正处于主干上,执行命令,将分支从最后一个commit合并到主干上 git rebase --onto cb4023015f ...

  6. 关于jmeter性能测试小记的12345

    jmeter性能测试: linux环境命令:后台启jar包:nohup java -jar *.java &前台启jar包:java -jar 后台执行jmeter命令,打印控制台输出在log ...

  7. web自动化测试python+selenium----API

    import time from selenium import webdriver # 启动谷歌浏览器,开启与浏览器之间的会话 driver = webdriver.Chrome() # 访问一个网 ...

  8. nuxt.js的导航守卫

    一.使用router.js 重构项目时还行使用原来的router.js也是可以的,需要下载插件惊醒配置,这时候vue-cli中怎么用,nuxt中就怎么使用导航守卫,几乎一样 二.使用nuxt.js 1 ...

  9. python+selenium+unittest自动化测试

    目前先用这个记录自动化测试相关内容,后期再进行整理: 1.自动化测试:testcase-->test suite  ---> TestRunner 2.TestRunner时,一种将内容打 ...

  10. 小梅哥课程学习——串口发送应用之发送数据(适用于板级验证,时间间隔位100ms)

    //此代码的注意事项,首先这个代码不能仿真成功会出现一定的时间延迟, //因为在做板级验证的时候把时间改成了100ms发送一次,要想仿真成功,把时间改成499999 //使用上一节课设计的发送模块,设 ...