字符串连接函数paste

1、字符串连接:paste(..., sep = " ", collapse = NULL)sep表示分隔符,默认为空格。collapse表示如果不指定值,那么函数paste的返回值是自变量之间通过sep指定的分隔符连接后得到的一个字符型向量;如果为其指定了特定的值,那么自变量连接后的字符型向量会再被连接成一个字符串,之间通过collapse的值分隔
(1) paste函数把它的自变量连成一个字符串,中间用空格分开,如
  1. > paste("Hello","world")
  2. [1] "Hello world"
(2) 连接的自变量可以是向量,这时各对应元素连接起来,长度不相同时较短的向量被重复使用。如
  1. > paste("A", 1:6, sep = "")
  2. [1] "A1" "A2" "A3" "A4" "A5" "A6"
(3) 如果希望将一个向量中所有字符连接在一起且中间用逗号分隔,使用paste(x,collapse)即可,结果只是返回一个元素。
  1. > paste(letters[1:6],collapse=",")
  2. [1] "a,b,c,d,e,f"
(4) 同时使用了参数seq与collapse
  1. > paste("A", 1:6, sep = "", collapse=",")
  2. [1] "A1,A2,A3,A4,A5,A6"
(5)如果只是希望向量x中每一个元素和特定的字符(如下划线_)连接,使用paste(x,seq=)即可,如
  1. > paste(letters[1:4], seq='_')
  2. [1] "a _" "b _" "c _" "d _"
2、应用方面,以上说的还是paste的基础常用方式,下面说的是我经常会用到的paste用法,与学习的时候不同,paste其实用法挺灵活的。
(1) R读取数据的时候有时会读取多个文件如:a.csv b.csv c.csv,d.csv........等,这时可以用到paste来实现。
  1. > path <- 'E:\\mytestdata\\'
  2. > setwd(path)
  3. > dir.data <- dir(path)
  4. > dir.data
  5. [1] "a.csv" "b.csv" "c.csv" "d.csv"
  6. >for(i in 1:length(dir.data)){
  7. >data <- read.csv(paste(path,dir.data[i],sep=''))
  8. >}
循环读取文件,data分别表示  "a.csv" "b.csv" "c.csv" "d.csv",可以在循环里对每个文件进行操作
 
(2)R保存文件的时候也可以用paste
  1. write.csv(a.csv,file=paste(path,'data.csv'))
(3) paste也可以连接sql语句
  1. paste('select * from student where date =','date',sep=" ")
这样的好处是可以把date设置为外来参数,进行传参。
 
总结:虽然列举了不同的用法,但是本质就是字符串连接,只不过在实际中用法比较灵活,需要多加练习,用多了会觉得非常好用。
3、使用paste0连接多个字符串
  1. > date1 <- 20150101
  2. > date2 <- 20151231
  3. > paste0("select * from sales where stat_date between ",date1," and ",date2)
  4. [1] "select * from sales where stat_date between 20150101 and 20151231"

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

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

    //推断一个数是否为2的n次方 #include <stdio.h> int is_two_n(int num) { if ((num&(num - 1))) //去掉一个1,推断 ...

  2. Android 跑马灯效果与EditText冲突

    近期一个项目,因为布局TextView内容太长了.首先想到的就是跑马灯效果,所以就把TextView又一次自己定义了,尽管跑马灯效果实现了.只是导致了还有一个问题就是EditText输入问题,当第一次 ...

  3. Java:String和Date、Timestamp之间的转换【转】

    原文地址:http://yunnick.iteye.com/blog/1074495 一.String与Date(java.util.Date)互转 1.1 String -> Date Str ...

  4. 2015/12/29 Java语言概述 操作中注意事项

    java语言概述 ①版本分类:JavaSE 标准版 桌面开发                 JavaEE 企业版 网络开发                 JavaME 移动版 嵌入式开发(塞班系统 ...

  5. 【codeforces379F】 New Year Tree

    距离一个点最远的点一定是直径的一个端点.考虑运用这个原理,每次维护一下直径端点即可. #include<algorithm> #include<iostream> #inclu ...

  6. 中国剩余定理模板&俄罗斯乘法

    void ex_gcd(ll a,ll b,ll &d,ll &x,ll &y){ if(!b){d=a;x=1LL;y=0LL;} else {ex_gcd(b,a%b,d, ...

  7. c# Java 微信红包算法

    int total_money_cent = 1000; // 红包总金额 单位:分 int total_people = 8; // 抢红包总人数 int[] array = new int[tot ...

  8. finger的使用

    finger命令用来查询一台主机上的登录账号的信息,通常会显示用户名.主目录.停滞时间.登录时间.登录Shell等信息,使用权限为所有用户. 安装 sudo apt-get install finge ...

  9. java 语法 —— 数组

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

  10. python-----删除空文件夹

    问题描述: 有时,我们的文件夹太多了,但有的文件夹还是空的文件夹,自己去删需要好久,于是想着写个脚本自动删除.代码如下: #!/usr/bin/env python # -*- coding: utf ...