R语言paste应用

1、字符串连接:paste(..., sep = " ", collapse = NULL)     sep表示分隔符,默认为空格。collapse表示如果不指定值,那么函数paste的返回值是自变量之间通过sep指定的分隔符连接后得到的一个字符型向量;如果为其指定了特定的值,那么自变量连接后的字符型向量会再被连接成一个字符串,之间通过collapse的值分隔

(1) paste函数把它的自变量连成一个字符串,中间用空格分开,如

> paste("Hello","world")
         [1] "Hello world"

(2) 连接的自变量可以是向量,这时各对应元素连接起来,长度不相同时较短的向量被重复使用。如

> paste("A", 1:6, sep = "")
[1] "A1" "A2" "A3" "A4" "A5" "A6"
(3) 如果希望将一个向量中所有字符连接在一起且中间用逗号分隔,使用paste(x,collapse)即可,结果只是返回一个元素。

> paste(letters[1:6],collapse=",")
[1] "a,b,c,d,e,f"

(4) 同时使用了参数seq与collapse

> paste("A", 1:6, sep = "",collapse=",")
[1] "A1,A2,A3,A4,A5,A6"

(5)如果只是希望向量x中每一个元素和特定的字符(如下划线_)连接,使用paste(x,seq=)即可,如

> paste(letters[1:4],seq='_')
[1] "a _" "b _" "c _" "d _"

2、应用方面,以上说的还是paste的基础常用方式,下面说的是我经常会用到的paste用法,与学习的时候不同,paste其实用法挺灵活的。

(1) R读取数据的时候有时会读取多个文件如:a.csv b.csv c.csv,d.csv........等,这时可以用到paste来实现。

> path <- 'E:\\mytestdata\\'

> setwd(path)

> dir.data<-dir(path)

> dir.data
[1] "a.csv" "b.csv" "c.csv" "d.csv"

>for(i in 1:length(dir.data)){
>data<- read.csv(paste(path,dir.data[i],sep=''))
>}

循环读取文件,data分别表示  "a.csv" "b.csv" "c.csv" "d.csv",可以在循环里对每个文件进行操作

(2)R保存文件的时候也可以用paste

write.csv(a.csv,file=paste(path,'data.csv'))   这里不再多举例子

(3) paste也可以连接sql语句

paste('select * from student where date =','date',sep=" ")  这样的好处是可以把date设置为外来参数,进行传参。

总结:虽然列举了不同的用法,但是本质就是字符串连接,只不过在实际中用法比较灵活,需要多加练习,用多了会觉得非常好用。

 2、使用paste0连接多个字符串

> date1 <- 20150101
> date2 <- 20151231
> paste0("select * from sales where stat_date between ",date1," and ",date2)
[1] "select * from sales where stat_date between 20150101 and 20151231"

 

 

posted on 2016-09-29 15:22  W-Seven  阅读(7134)  评论(0编辑  收藏  举报