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

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"

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

(0)

相关推荐

  • R语言—自定义函数求置信区间的操作

    看代码吧~ #求单正态均值mu的置信区间 #参数依次为置信水平alpha,正态样本x,已知总体方差(默认为未知) mu <- function(alpha,x,sigma=NA){ n <- length(x) meanx <- mean(x) if(is.na(sigma)){ t1 <- qt(1-alpha/2,n-1) t2 <- qt(1-alpha,n-1) mu11 <- meanx - t1*sqrt(sum((x-meanx)^2)/(n-1))/sq

  • R语言中的fivenum与quantile()函数算法详解

    fivenum()函数: 返回五个数据:最小值.下四分位数数.中位数.上四分位数.最大值 对于奇数个数字=5,fivenum()先排序,依次返回最小值.下四分位数.中位数.上四分位数.最大值 > fivenum(c(1,12,40,23,13)) [1] 1 12 13 23 40 对于奇数个数字>5,fivenum()先排序,我们可以求取最小值,最大值,中位数.在排序中,最小值与中位数中间,若为奇数,取其中位数为下四分位数,若为偶数,取最中间两个数的平均值为下四分位数:在排序中,中位数与最大

  • R语言-summary()函数的用法解读

    summary():获取描述性统计量,可以提供最小值.最大值.四分位数和数值型变量的均值,以及因子向量和逻辑型向量的频数统计等. 结果解读如下: 1. 调用:Call lm(formula = DstValue ~ Month + RecentVal1 + RecentVal4 + RecentVal6 + RecentVal8 + RecentVal12, data = trainData) 当创建模型时,以上代码表明lm是如何被调用的. 2. 残差统计量:Residuals Min 1Q M

  • R语言-计算平均值不同函数的区别说明

    函数mean > mean(x) > num x1 x2 x3 10378050.50 89.45 81.18 80.45 此时对编号也求了平均值,不过往往我们只想对后面的数据求平均值.而且此时会出现一个警告.因为x是一个数据框,不是数值,所以不能直接用mean()函数. 函数colMeans() > colMeans(x) num x1 x2 x3 10378050.50 89.45 81.18 80.45 > colMeans(x)[c("x1","

  • R语言中c()函数与paste()函数的区别说明

    c()函数:将括号中的元素连接起来,并不创建向量 paste()函数:连接括号中的元素 例如 c(1, 2:4),结果为1 2 3 4 paste(1, 2:4),结果为"1 2" "1 3" "1 4" c(2, "and"),结果为"2" "and" paste(2, "and"),结果为"2 and" 补充:R语言中paste函数的参数sep

  • R语言-生成频数表和列联表crosstable函数介绍

    列联表crosstable 列联表不仅可以用来做简单的描述性统计,还可以在机器学习中用来比较识别正确率,FPR,TPR等等数据,以便我们比较不同的ML模型 or 调参. 2x2列联表一般长下面这样: Total Observations in Table: 143 | test_cancer$diagnosis lda.class | 0 | 1 | Row Total | -------------|-----------|-----------|-----------| 0 | 82 | 1

  • R语言中if(){}else{}语句和ifelse()函数的区别详解

    首先看看定义: # if statement if(cond) expr if(cond) cons.expr else alt.expr # ifelse function ifelse(test, yes, no) 这两个函数(R语言中都是函数)相同的地方都是根据条件返回对应的值. 区别在于: if语句的条件是个TRUE/FALSE值,如果是个长度>1的逻辑向量,只判断第一个TRUE/FALSE值:而ifelse是长度任意的逻辑向量,返回根据逻辑向量对应对的yes/no值组合的新向量 ife

  • R语言中cut()函数的用法说明

    R语言cut()函数使用 cut()切割将x的范围划分为时间间隔,并根据其所处的时间间隔对x中的值进行编码. 参数:breaks:两个或更多个唯一切割点或单个数字(大于或等于2)的数字向量,给出x被切割的间隔的个数. breaks采用fivenum():返回五个数据:最小值.下四分位数.中位数.上四分位数.最大值. labels为区间数,打标签 ordered_result 逻辑结果应该是一个有序的因素吗? 先用fivenum求出5个数,再用labels为每两个数之间,贴标签,采用(]的区间,

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

    R中自带的字符串连接的函数是paste. 先来看一下官方文档里对paste用法的解释: 基本格式: paste (-, sep = " ", collapse = NULL) 其中,-表示对象,可以有多个,中间用逗号隔开. sep表示分隔符,默认为空格. collapse表示如果不指定值,那么函数paste的返回值是-的对象之间通过sep指定的分隔符连接后得到的一个字符型向量:如果为其指定了特定的值,那么自变量连接后的字符型向量会再被连接成一个字符串,之间通过collapse的值分隔.

  • R语言中字符串的拼接操作实例讲解

    在R语言中 paste 是一个很有用的字符串处理函数,可以连接不同类型的变量及常量. 函数paste的一般使用格式为: paste(..., sep = " ", collapse = NULL) 其 中-表示一个或多个R可以被转化为字符型的对象:参数sep表示分隔符,默认为空格:参数collapse可选,如果不指定值,那么函数paste的返回值是自变量之间通过sep指定的分隔符连接后得到的一个字符型向量:如果为其指定了特定的值,那么自变量连接后的字符型向量会再被连接成一个字符串,之间

  • R语言 title()函数的参数用法说明

    如下所示: title(main = NULL, sub = NULL, xlab = NULL, ylab = NULL, line = NA, outer = FALSE, ...) 参数 描述 main 主标题 sub 副标题 xlab x轴标签 ylab y轴标签 line 到轴线的行数距离 outer 一个逻辑值. 如果为TRUE,则标题位于图的外部边缘. 补充:R语言低级绘图函数-title title 函数用来在一张图表上添加标题 基本用法: main 表示主标题,通常位于图像的上

  • R语言-实现提取包含某字符串的行变量

    已解决 用grep函数 A=read.table("clipboard",sep="/t",header=T) A[grep(pattern="/resource/activity",A[,1]),] 补充:R语言 如何截取字符串特定字符前或后的字符串 如待处理字符串是: topic = "#全国累计报告72436例新冠肺炎#/#全国累计报告72436例新冠肺炎#.csv" 需要截取出:"全国累计报告72436例新冠

  • R语言-实现将向量转换成一个字符串

    将向量a,b装换成一个字符串,其中: a=c(1,2,3,4) b=c(2,3,4,5) 为了将其转化成一个字符串可以通过引入包stringr,使用str_c实现,使用paste也一样可以达到目的,如下: library(stringr) a_b=str_c(a,b,collapse='') paste(a,b,sep='') 输出为: [1] "12233445" 在实际的数据处理中看可以用来给数据框建联合索引,比如数据框中需要用到的索引列联接成一列,则在实际中可以方便很多,避免很多

  • R语言-如何截取变量中指定位置的若干个字符

    例如,某数据库如下,需要把第二个变量里面的ID号码(格式为T-20-252-02)提取出来作为一个新变量. 命令如下: b=readWorksheetFromFile(temp[11],sheet=1) 读入excel数据,命名为数据库b,这里temp[11]是读入temp中第11个文件名对应的文件 attach(b) attach数据库,之后即可直接用变量名file, 否则要用b$file b$id=substr(File,regexpr("T",File),regexpr(&quo

  • R语言strsplit函数用法深入详解

    1.R语言strsplit用于分割字符串 创建测试数据 > test <- "aa bb cc dd ee ff" ##创建测试数据 > test [1] "aa bb cc dd ee ff" > class(test) ## 测试数据为字符 [1] "character" 2.按照指定分隔符拆分字符串 > a <- strsplit(test,split = " ") ##制动分隔符为空

  • Golang语言如何高效拼接字符串详解

    目录 01.介绍 02.操作符 + 03.strings.Join 方法 04.fmt.Sprint 方法 05.bytes.Buffer 类型 06.strings.Builder 类型 07.总结 01.介绍 在编程语言中,字符串是一种重要的数据结构.在 Golang 语言中,因为字符串只能被访问,不能被修改,所以,如果我们在 Golang 语言中进行字符串拼接操作,Golang 需要进行内存拷贝. 如果读者朋友们了解过 Golang 语言内存管理的相关知识,就会知道内存拷贝会带来性能消耗.

  • Go语言截取字符串函数用法

    本文实例讲述了Go语言截取字符串函数用法.分享给大家供大家参考.具体如下: 复制代码 代码如下: func Substr(str string, start, length int) string {     rs := []rune(str)     rl := len(rs)     end := 0             if start < 0 {         start = rl - 1 + start     }     end = start + length        

  • C语言实现字符串拼接和拷贝

    本文实例为大家分享了C语言实现字符串拼接和拷贝的具体代码,供大家参考,具体内容如下 字符串拼接: #include<stdio.h> #include<stdlib.h> #include<string.h> char *str_contact(const char *,const char *); char *str_contact(const char *str1,const char *str2) { char *result = (char*) malloc(s

随机推荐