字符串连接函数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设置为外来参数,进行传参。
 
总结:虽然列举了不同的用法,但是本质就是字符串连接,只不过在实际中用法比较灵活,需要多加练习,用多了会觉得非常好用。
3、使用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"

dim(x)查看或设置数组的维度向量

> a <- matrix(1:20,nrow=5,ncol=4,byrow=T)
> a
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 5 6 7 8
[3,] 9 10 11 12
[4,] 13 14 15 16
[5,] 17 18 19 20
> is.matrix(a)
[1] TRUE
> dim(a) #查看或设置数组的维度向量
[1] 5 4
# 错误的用法
> dim(a) <- c(4,4)
Error in dim(a) <- c(4, 4) : dims [product 16]与对象长度[20]不匹配
> # 正确的用法
> a <- 1:20
> dim(a) <- c(5,4) #转换向量为矩阵
> a
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
is系列和as系列函数用来判断变量的属性和转换变量的属性
> is.character(a)
[1] FALSE
> is.numeric(a)
[1] TRUE
> is.matrix(a)
[1] TRUE
> is.data.frame(a)
[1] FALSE
# 矩阵转换为data.frame
> is.data.frame(as.data.frame(a))
[1] TRUE
 
 
 
 
 

R函数详解的更多相关文章

  1. Linux C popen()函数详解

    表头文件 #include<stdio.h> 定义函数 FILE * popen( const char * command,const char * type); 函数说明 popen( ...

  2. Linux环境fork()函数详解

    Linux环境fork()函数详解 引言 先来看一段代码吧, 1 #include <sys/types.h> 2 #include <unistd.h> 3 #include ...

  3. AdapterView的使用与getView函数详解

    作者:徐冉.文章首发在他的个人博客. ) AdapterView&Adapter家族 adapterview就是和数据有关的控件,如listview,gridview,spinnerview等 ...

  4. python3 内置函数详解

    内置函数详解 abs(x) 返回数字的绝对值,参数可以是整数或浮点数,如果参数是复数,则返回其大小. # 如果参数是复数,则返回其大小. >>> abs(-25) 25 >&g ...

  5. C++ list容器系列功能函数详解

    C++ list函数详解 首先说下eclipse工具下怎样debug:方法:你先要设置好断点,然后以Debug方式启动你的应用程序,不要用run的方式,当程序运行到你的断点位置时就会停住,也会提示你进 ...

  6. CString 的成员函数详解

    CSTRING的成员函数详解   typedef ATL::CStringT< TCHAR, StrTraitMFC_DLL< TCHAR > > CString;CStrin ...

  7. malloc 与 free函数详解<转载>

    malloc和free函数详解   本文介绍malloc和free函数的内容. 在C中,对内存的管理是相当重要.下面开始介绍这两个函数: 一.malloc()和free()的基本概念以及基本用法: 1 ...

  8. NSSearchPathForDirectoriesInDomains函数详解

    NSSearchPathForDirectoriesInDomains函数详解     #import "NSString+FilePath.h" @implementation ...

  9. JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解

    二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...

随机推荐

  1. C#字符串数组排序 C#排序算法大全 C#字符串比较方法 一个.NET通用JSON解析/构建类的实现(c#) C#处理Json文件 asp.net使用Jquery+iframe传值问题

    C#字符串数组排序   //排序只带字符的数组,不带数字的 private   string[]   aa   ={ "a ", "c ", "b & ...

  2. Qt 插件综合编程-基于插件的OpenStreetMap瓦片查看器client(5) 小结

    经过不断试用与改动,这个查看器终于还是完毕了设计.实现.查看器,顾名思义,没有编辑功能:说的白一点,仅仅是一个以OpenStreetMap为底图的显示装置罢了.和专业GIS相比,这款基于插件的Open ...

  3. Linux 内核开发 - 内存管理

    1.1什么是内存管理 内存管理是对计算机内存进行分配和使用的技术.内存管理主要存在于多任务的操作系统中,因为内存资源极其有限.须要在不同的任务之间共享内存,内存管理的存在就是要高效.高速的非配内存,并 ...

  4. 我在CSDN开通博客啦!

    今天,我最终在CSDN开通博客啦! 

  5. Replica Sets+Sharding方案之真枪实弹篇

    话说在虚拟机中会报各种错误.在真实的环境中就不会那么痛苦了. 想了一下虚拟机中报错的原因有. 机器卡,处理的时间长就会抛出错误 还有虚拟机假设给的空间太小.也会报异常. 此处讲讲我的大致思路. 第一, ...

  6. JS 通过选择百度地图地址获取经纬度自动填充到文本框中的方法

    首先要注册百度地图API. 1.登录百度地图开放平台http://lbsyun.baidu.com 注册账号,完善信息,点击网站右上角的“API控制台”,点击,创建应用. 应用类型选择:“浏览器端”, ...

  7. 【bzoj4602】[Sdoi2016]齿轮

    dfs,连边,边权为比值,赋值搜索,遇到矛盾时退出 #include<algorithm> #include<iostream> #include<cstdlib> ...

  8. java 语法 —— 数组

    1. 编译器不允许指定数组的大小 int[] a1; 既然编译器不允许指定数组的大小,现在 a1 拥有的只是对数组的一个引用,且未给该数组对象本身分配任何空间.为了给数组创建对应的存储空间,必须写初始 ...

  9. 6 Workbook 对象

    6.1 在奔跑之前先学会走路:打开和关闭工作薄 代码清单6.1:一个完整的工作薄批处理框架 '代码清单6.1:一个完整的工作薄批处理框架 Sub ProcessFileBatch() Dim nInd ...

  10. 从EJB规范理解微服务

    晚上看了一篇从JavaEE谈微服务的文章,里面不少观点还是很有启发的,下面最有感触的,从失败的EJB谈微服务. 说起JavaEE规范,要先从EJB(Enterprise Java Bean),他是一种 ...