R语言 字符处理基础函数

1、nchar(x):返回字符串或者字符串向量x的长度。

> nchar("I love you!")
[1] 11
> nchar(c("I", "love", "you", "!"))
[1] 1 4 3 1

2、grep(pattern,x):返回 pattern 在字符串向量 x 中的位置。

> grep("y", "I love you!")
[1] 1

> a <- c("I", "love", "you", "!")
> grep("y", a)
[1] 3

> grep("k", a)
integer(0)

3、paste(...,sep=" "):连接字符串,分隔符为 sep (默认值为空格)。

> paste("I", "love", "you", "!")
[1] "I love you !"

> a <- c("I", "love", "you", "!")
> a
[1] "I"    "love" "you"  "!"   

> paste(a, 1:4)
[1] "I 1"    "love 2" "you 3"  "! 4"
> paste(a, 1:4, sep="-")
[1] "I-1"    "love-2" "you-3"  "!-4"   

> paste("Today is","Sat Jan 11 2020")
[1] "Today is Sat Jan 11 2020"

4、paste0(...,sep=" "):以空字符串连接字符。

> paste0("I", "love", "you", "!")
[1] "Iloveyou!"

> a <- c("I", "love", "you", "!")
> a
[1] "I"    "love" "you"  "!"
> paste0(a, 1:4)
[1] "I1"    "love2" "you3"  "!4"
> paste0(a, 1:4, sep="--")
[1] "I1--"    "love2--" "you3--"  "!4--"   

> b <- c("甲","乙","丙","丁","戊","己","庚","辛","壬","癸")
> d <- c("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥")
> paste0(b, d)
 [1] "甲子" "乙丑" "丙寅" "丁卯" "戊辰" "己巳" "庚午"
 [8] "辛未" "壬申" "癸酉" "甲戌" "乙亥"

5、sprintf(...):按照一定格式把若干的组件组合成字符串。

> a <- 11
> sprintf("The square of %d is %d", a, a^2)
[1] "The square of 11 is 121"

> sprintf("The square root of %d is %d", a^2, (a^2)^0.5)
[1] "The square root of 121 is 11"

相似于 Python 中的打印格式化字符串

示例:

a = 11

print(‘The square of %d is %d‘ % (a, a**2))
print(‘The square root of {} is {}‘.format(a**2, a))

The square of 11 is 121
The square root of 121 is 11

6、substr(x,start,stop):截取字符串x中start到stop范围的字串。

excel 中的 mid(), python 中的 切片

示例:

> a <- paste0(letters[1:7], collapse="")
> a
[1] "abcdefg"

> substr(a, 1, 3)
[1] "abc"

> substr(a, 1, 3) <- "aaa"
> a
[1] "aaadefg"

> b <- c("1a","2bb", "3ccc", "4dddd" )
> substr(b, 1, 2)
[1] "1a" "2b" "3c" "4d"

7、strsplit(x,split):根据split将x拆分成若干字串,返回这些字串组成的列表。

python 中的 s.split(split)

示例:

> a <-paste(letters[1:7], collapse="_")
> a
[1] "a_b_c_d_e_f_g"
> strsplit(a, "_")
[[1]]
[1] "a" "b" "c" "d" "e" "f" "g"

> b <- paste0(letters[1:7], 1:7, collapse="_")
> b
[1] "a1_b2_c3_d4_e5_f6_g7"
> strsplit(b, "_")
[[1]]
[1] "a1" "b2" "c3" "d4" "e5" "f6" "g7"

> d <- paste0(c(2020, 01, 10), collapse="/")
> d
[1] "2020/1/10"
> strsplit(d, "/")
[[1]]
[1] "2020" "1"    "10"  

> #  将列表转换为字符串向量
> unlist(strsplit(d, "/"))
[1] "2020" "1"    "10" 

8、regexpr(pattern,x):在字符串 x 中寻找 pattern,返回与pattern匹配的第一个子字符串的起始字符位置。

> a <- "I love you!"
> regexpr("y", a)
[1] 8
attr(,"match.length")
[1] 1
attr(,"index.type")
[1] "chars"
attr(,"useBytes")
[1] TRUE

“y” 在 a 的第八个位置开始,并且长度为1。

9、gregexpr(pattern,x):查找x中的所有与pattern匹配的字串开始位置及长度。

> a <- "I love you!"
> b <- "You love me!"
> paste(a, b)
[1] "I love you! You love me!"
> gregexpr("v", paste(a, b))
[[1]]
[1]  5 19
attr(,"match.length")
[1] 1 1
attr(,"index.type")
[1] "chars"
attr(,"useBytes")
[1] TRUE

"v" 在 paste(a, b) 中出现了两次。

推荐阅读:

http://blog.sina.com.cn/s/blog_69ffa1f90101sie9.html

https://www.cnblogs.com/awishfullyway/p/6601539.html

https://blog.csdn.net/yj1556492839/article/details/82725315

原文地址:https://www.cnblogs.com/shanger/p/12180615.html

时间: 2024-10-11 04:20:51

R语言 字符处理基础函数的相关文章

R语言中的循环函数(Grouping Function)

R语言中有几个常用的函数,可以按组对数据进行处理,apply, lapply, sapply, tapply, mapply,等.这几个函数功能有些类似,下面介绍下这几个函数的用法. Apply 这是对一个Matrix或者Array进行某个维度的运算.其格式是: Apply(数据,维度Index,运算函数,函数的参数) 对于Matrix来说,其维度值为2,第二个参数维度Index中,1表示按行运算,2表示按列运算.下面举一个例子: m<-matrix(1:6,2,3) 构建一个简单的2行3列的矩

R语言scale与unscale函数

一.scale函数 R语言base库中自带数据标准化接口scale函数,函数介绍如下 Usage scale(x, center = TRUE, scale = TRUE) Arguments x: a numeric matrix(like object). center: either a logical value or a numeric vector of length equal to the number of columns of x. scale: either a logic

从零开始学习R语言(七)——函数

本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/61142959 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/12568362.html 函数是各种编程语言都很常见的功能,R语言有很多的内置函数,但通过自定义函数,我们可以创建能实现自己想要功能的函数. R语言自定义函数的结构 func_name <- function (args) { func_body return (value) } 其中,func_name是自

R语言之——字符串处理函数

nchar 取字符数量的函数 length与nchar不同,length是取向量的长度 # nchar表示字符串中的字符的个数 nchar("abcd") [1] 4 # length表示向量中元素的个数 length("abcd") [1] 1 length(c("hello", "world")) [1] 2 paste 字符串粘合函数 paste在不指定分割符的情况下,默认分割符是空格 paste0在不指定分割符的情况下

R语言查找变量ls函数

要知道目前在工作区中的可用变量,可以使用 ls()函数列出所有变量. 另外,ls() 函数可以使用模式来匹配变量名称. print(ls()) 当上面的代码执行时,它产生以下结果: [1] "my var" "my_new_var" "my_var" "var.1" [5] "var.2" "var.3" "var.name" "var_name2.&quo

R 语言assign 和get 函数用法

assign函数在循环时候,给变量赋值,算是比较方便 1.给变量赋值 [plain] view plain copy for (i in 1:(length(rowSeq)-1)){ assign(paste("nginx_server_fields7_", i, sep = ""), nginx_server_fields7[(rowSeq[(i-1)+1]):(rowSeq[i+1]), ]) } 2.通过for循环给变量a1.a2.a3赋值 [plain] v

R语言 删除变量rm函数

变量可以通过使用 rm()函数来删除.下面我们删除变量var.3.然后再打印变量时出现异常错误. rm(var.3) print(var.3) 当上面的代码执行时,它产生以下结果: [1] "var.3" Error in print(var.3) : object 'var.3' not found 所有的变量可以通过使用rm()和 ls()函数来一起删除. rm(list=ls()) print(ls()) 当上面的代码执行时,它产生以下结果: character(0)

R语言︱情感分析—词典型代码实践(最基础)(一)

笔者寄语:词典型情感分析对词典要求极高,词典中的词语需要人工去选择,但是这样的选择会很有目标以及针对性.本文代码大多来源于<数据挖掘之道>的情感分析章节.本书中还提到了监督算法式的情感分析,可见博客: R语言︱情感分析-基于监督算法R语言实现笔记. 可以与博客 R语言︱词典型情感分析文本操作技巧汇总(打标签.词典与数据匹配等)对着看. 词典型情感分析大致有以下几个步骤: 训练数据集.neg/pos情感词典.分词+数据清洗清洗(一.二.三级清洗步骤).计算情感得分.模型评价 ----------

R语言学习笔记:基础知识

1.数据分析金字塔 2.[文件]-[改变工作目录] 3.[程序包]-[设定CRAN镜像] [程序包]-[安装程序包] 4.向量 c() 例:x=c(2,5,8,3,5,9) 例:x=c(1:100) 表示把1 - 100的所有数字都给x这个变量 5.查看x的类型:>mode(x) 6.查看x的长度:>length(x) 7.将两个向量组成一个矩阵: >rbind(x1, x2)  注:r是row的意思,即行,按行组成矩阵. >cbind(x1, x2)  注c是column的意思,