R语言系列01 烦人的拼贴操作 paste 与 paste0

相信很多人在一开始使用R语言的paste, paste0的时候,总是拿捏不准,感到有些迷糊。

本期文章中,我将记录对比一些操作以及表现,加深印象和理解,力求下次使用的时候不出纰漏。

从help入手

不管是查询 ?paste 还是 ?paste0 ,都能从R的帮助文档里同时看到paste以及paste0的函数原型,他们都是Concatenate Strings功能的函数。

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

sep 参数是paste是为了分割两个数据项(seperate the terms)的可选字符串。
collapse 参数则是paste以及paste0共有的,他是一个可选择的字符串,用途是分割结果(seperate the results)。

为了更好的理解两个参数起作用位置的差异,我们举一个例子。

如果我们输入两个向量,paste0默认不对两个向量的对应元素之间加上某种分割字符,这归功于默认 sep="" 的设置。而对于paste来说,默认 sep=" " 会在对应元素之间加上一个空格。

> paste(LETTERS[1:4],1:4)
[1] "A 1" "B 2" "C 3" "D 4"
> paste(LETTERS[1:4],1:4,sep="")
[1] "A1" "B2" "C3" "D4"
> paste0(LETTERS[1:4],1:4)
[1] "A1" "B2" "C3" "D4"

term 指的是两个vector的每个数据项,result 指的就是两个term以及sep拼接之后的一个新的数据项。

在不需要seperate the term的情况下,paste0是首选,虽然paste加一个参数修改就可以达到一样的效果,但这没必要。

更多模拟

看一下collapse的效果呢?

> paste0(LETTERS[1:4],1:4)
[1] "A1" "B2" "C3" "D4"
> paste0(LETTERS[1:4],1:4,collapse = "")
[1] "A1B2C3D4"
> paste0(LETTERS[1:4],1:4,collapse = " ")
[1] "A1 B2 C3 D4"
> paste0(LETTERS[1:4],1:4,collapse = " | ")
[1] "A1 | B2 | C3 | D4"

很明显,当使用默认值collapse = NULL的时候,意味着我们没有任何东西来分割新的数据项results,注意,这不等价于collapse = “”。前者将这些results作为单独的数据项,放在一个与原向量等长的向量中,而后者按照没有间隔将这些results拼成一个字符串。

如果只输入一个向量会怎么样呢?

如果我们使用字符型的Vector作为输入,paste或者paste0的结果都是一样的,因为 sep 参数不起作用。如果我们想要吧这一个Vector拼接成一个String,那么 collapse 参数将派上用场。

> LETTERS[1:4]
[1] "A" "B" "C" "D"
> paste(LETTERS[1:4])
[1] "A" "B" "C" "D"
> paste(LETTERS[1:4],sep='c')
[1] "A" "B" "C" "D"
> paste(LETTERS[1:4],sep='c',collapse='')
[1] "ABCD"
> paste(LETTERS[1:4],sep='c',collapse='|')
[1] "A|B|C|D"

【R语言系列01】烦人的拼贴操作 详述 paste and paste0相关推荐

  1. R语言系列:datasets(R自带数据包)

     R语言系列:datasets(R自带数据包) 向量 euro    #欧元汇率,长度为11,每个元素都有命名 landmasses    #48个陆地的面积,每个都有命名 precip    # ...

  2. R语言使用sqldf包按照SQL语法操作dataframe数据(Using SQL statements to manipulate data frames)

    R语言使用sqldf包按照SQL语法操作dataframe数据(Using SQL statements to manipulate data frames) 目录

  3. 【R语言中如何去除替换NA相关操作】

    R语言中如何去除替换NA相关操作 1.去除矩阵所有含NA的行 2.去除矩阵特定列中含NA的行 3.替换矩阵中的NA值为0 4.将矩阵中某一列的特殊值替换为NA 1.去除矩阵所有含NA的行 data=n ...

  4. r语言读取C盘的csv文件,R语言开发之CSV文件的读写操作实现

    在R中,我们可以从存储在R环境外部的文件读取数据,还可以将数据写入由操作系统存储和访问的文件.这个csv文件应该存在于当前工作目录中,以方便R可以读取它, 当然,也可以设置自己的目录,并从那里读取文件 ...

  5. 【数据分析R语言系列】R和RStudio的下载和安装, R在 Ubuntu 和CentOS 系统下的安装

    文章目录 准备工作 R 的下载和安装 RStudio 的下载和安装 配置(可选) 常见问题与方案 R 在 Linux 系统下的安装 Ubuntu 从源安装 R CentOS 从源安装 R Rtools ...

  6. R语言系列:自定义function

    在用R语言做各种事物时,用户自定义函数是不可或缺的.这期来讲讲如何自定义R的function.首先要介绍的是function的基本框架: myfunction <- function(arg1, ...

  7. R语言 CHAR 01

    第一章 数据与R语言 文章目录 第一章 数据与R语言 一.数据与统计学 1.1 什么是统计学 1.2 变量与数据 1.3 数据来源 二.R语言初步使用 2.1 下载.安装.更新 2.2 对象赋值与运行 ...

  8. r语言实战----01

    1. R 简介 R 是现今最受欢迎的数据分析和可视化平台之一.它是自由的开源软件,并同时提供 Windows.Mac OS X 和 Linux 系统的版本. 数据分析:对于数据的处理,加工,分析,和得 ...

  9. linux r语言 指定编码,R语言-进行数据的重新编码(recode)操作

    在分析数据时我们经常会遇到将变量值转换成其他的值的情况(如:将连续变量转成分类变量)这时就需要我们对原有数据进行重新编码.本文将介绍R软件中常用的三种重编吗方法: 1.使用逻辑判断式编码. 2.使用c ...

最新文章

  1. SpringBoot——项目搭建、整合Mybatis、整合redis(集群)
  2. 基于python + tushare 的股票盯盘脚本
  3. npm 查看当前生效的配置
  4. 《MFC dialog中加入OpenGL窗体》
  5. Mysql数据库(四)——mysql索引相关知识
  6. 优朋普乐大数据_优朋普乐黑维炜:互动电视市场已进入成熟发展期
  7. scala中使用Option、Some、None,避免使用null
  8. SLAM: Orb_SLAM中的ORB特征
  9. LeetCode Hot100 ---- 回溯算法专题
  10. Spark : ContextCleaner清理器
  11. 当数据处理做不到实时,应该怎么办?
  12. 侯策:如何突破前端开发技术瓶颈
  13. 电子工艺实训考核装置
  14. 巧用 arp 命令 防p2p终结者的方法
  15. 记录一个报错问题 关于调用win32com打开文档
  16. activiti5.21 + SVG 绘制流程图 高亮显示已完成节点
  17. 外卖项目06---套餐管理业务开发(移动端的后台代码编辑开发)
  18. 利用vbox安装服务器操作系统,在Linux服务器上使用Vbox安装虚拟机(示例代码)
  19. 即时分账系统对B2B电商业务的重要性?
  20. 工程中常用的几种宏判断

热门文章

  1. 南大软工考研参考书目
  2. DMOZ介绍以及如何提交
  3. 论坛数据库设计与性能优化
  4. 游戏差异更新—BSDiff算法解析
  5. GitHub 上传大小限制 大文件无法上传问题!
  6. android锁屏软件开发,Android一键锁屏开发全过程
  7. 新版NFT数字藏品源码系统源码+已接支付
  8. 英雄联盟 LCUAPI
  9. access 查找工龄大于30_Access操作题
  10. linux l7,GitHub - windslinux/l7detect: Network application protocol detection software