文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

R语言拼接字符串_paste的用法说明

2024-04-02 19:55

关注

R中自带的字符串连接的函数是paste。

先来看一下官方文档里对paste用法的解释:

基本格式:


paste (…, sep = " ", collapse = NULL)

其中,…表示对象,可以有多个,中间用逗号隔开。

sep表示分隔符,默认为空格。

collapse表示如果不指定值,那么函数paste的返回值是…的对象之间通过sep指定的分隔符连接后得到的一个字符型向量;如果为其指定了特定的值,那么自变量连接后的字符型向量会再被连接成一个字符串,之间通过collapse的值分隔。

举例来说


paste("Hello", "xiaoming", sep = "-")

输出结果:

"Hello-xiaoming"

而如果其中某个对象是向量,会有类似于“循环连接”的效果。


paste("Hello", 1:2, sep = "-")

输出结果:

"Hello-1" "Hello-2"

如果想让上面的变成字符串而不是向量,只需要设置collapse。


paste("Hello", 1:2, sep = "-", collapse = ",")

输出结果:

"Hello-1,Hello-2"

补充:[R字符串] 字符串长度、分割、拼接、截取、替代、匹配和大小写替换

获取字符串长度:nchar()

字符串分割:strsplit()

字符串拼接:paste()

字符串截取:substr()

字符串替代:gsub() chartr() sub()

字符串匹配:grep()

大小写替换:toupper() tolower()

1. 获取字符串长度

nchar()能够获取字符串的长度,它也支持字符串向量操作。注意它和length()的结果是有区别的。


fruit <- 'apple orange grape banana'
nchar(fruit)
length(fruit)   #元素个数为1
[1] 1

2. 字符串分割

strsplit()负责将字符串按照某种分割形式将其进行划分,需要设定分隔符。下面我们是用空格来作为

分隔符将fruit分为四个元素。


> strsplit(fruit,split=' ')
[[1]]
[1] "apple"  "orange" "grape"  "banana"    #list结构
> fruitvec <- unlist(strsplit(fruit,split=' '))
> fruitvec
[1] "apple"  "orange" "grape"  "banana"   #转化为向量

3. 字符串拼接

paste()负责将若干个字符串相连结,返回成单独的字符串。其优点在于,就算有的处理对象不是字符

型也能自动转为字符型。另一个相似的函数paste0是设置无需分隔符的拼接。


paste(fruitvec,collapse=',')    #逗号作为分隔符
[1] "apple,orange,grape,banana"

4. 字符串截取

substr()能对给定的字符串对象取出子集,其参数是子集所处的起始和终止位置。


substr(fruit, 1,5)
[1] "apple"

5. 字符串替代

chartr是字母替换,不是字符串替换。

gsub()负责搜索字符串的特定表达式,并用新的内容加以替代。

sub()函数类似gsub(),但只替代第一个。


> chartr('world','bear',a)   #字母替换
Error in chartr("world", "bear", a) : 'old' is longer than 'new' #字符长度要求一致
> chartr('world','beara',a)
[1] "herre beara"
> x<-'i love you'
> chartr('you','she',x)   #实际是字母替换,不是字符串替换
[1] "i lhve she"
> a<-'i love you, do you love me ?'
> sub('you','she', a)            #只替换第一个参数you
[1] "i love she, do you love me ?"
> gsub('you','she', a)           #可以替换全部参数 
[1] "i love she, do she love me ?"  
gsub('apple','strawberry',fruit)
[1] "strawberry orange grape banana"

6. 字符串匹配

grep()负责搜索给定字符串对象中特定表达式 ,并返回其位置索引。grepl()函数与之类似,但其后面的”l”则意味着返回的将是逻辑值。


grep('grape',fruitvec)   #返回grape在fruitvec中的位置
[1] 3 

7. 大小写替换


> a <- "Hello World"
> toupper(a)    #全部替换为大写
[1] "HELLO WORLD"
> tolower(a)    #全部替换为小写
[1] "hello world"

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯