• 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设置为外来参数,进行传参。
     
    总结:虽然列举了不同的用法,但是本质就是字符串连接,只不过在实际中用法比较灵活,需要多加练习,用多了会觉得非常好用。
    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
     
     
     
     
     
  • 相关阅读:
    OpenJ_Bailian
    Codeforces Global Round 2: D.Frets On Fire
    Gym 102035 NWU2019组队赛2.0
    Gym 102035H :Zuhair and the Dag
    Gym 102035E:New Max
    Gym
    Linux常用命令-总结
    Linux常用命令
    Linux常用命令
    分布式会话 拦截器 单点登录
  • 原文地址:https://www.cnblogs.com/freescience/p/7420870.html
Copyright © 2020-2023  润新知