为了账号安全,请及时绑定邮箱和手机立即绑定

R语言基础

  • lapply(x,runif)

    //对数据进行随机抽取

    常与匿名函数结合使用

    lapply(x,function(m) m[1,])

    //讲x依次传入function中,并抽取第一行

    sapply(x,mean)//简化结果,当列表元素长度均为1,返回向量;列表元素长度相同且大于1,返回矩阵

    查看全部
  • 向量的每一个元素都是可以有名称

    声明 x1向量 :   x1<c(1,2,3,4)  

    给向量的每一个元素命名:

    names(x1) <-c("a","b","c","d")

    查看全部
  • 数据框子集

    > x <- data.frame(v1=1:5, v2=6:10, v3=11:15)
    > x
      v1 v2 v3
    1  1  6 11
    2  2  7 12
    3  3  8 13
    4  4  9 14
    5  5 10 15
    > x$v3[c(2,4)] <-NA #把v3列第2行和第4行元素设置成缺失值
    > x
      v1 v2 v3
    1  1  6 11
    2  2  7 NA
    3  3  8 13
    4  4  9 NA
    5  5 10 15
    > x[,2] #按列号提取元素
    [1]  6  7  8  9 10
    > x[,"v2"] #按名称提取元素
    [1]  6  7  8  9 10
    > x[(x$v1<4 & x$v2>=8),] #提取满足第1列小于4,第2列大于等于8的所有行的元素
      v1 v2 v3
    3  3  8 13
    > x[x$v1>2,]
      v1 v2 v3
    3  3  8 13
    4  4  9 NA
    5  5 10 15
    > x[which(x$v1>2),]
      v1 v2 v3
    3  3  8 13
    4  4  9 NA
    5  5 10 15
    > which(x$v1>2)
    [1] 3 4 5
    > x$v1>2
    [1] FALSE FALSE  TRUE  TRUE  TRUE

    which函数:Give the TRUE indices of a logical object, allowing for array indices.

    > subset(x, x$v1>2) #构建子集
      v1 v2 v3
    3  3  8 13
    4  4  9 NA
    5  5 10 15


    查看全部
    1 采集 收起 来源:数据框的子集

    2018-11-14

  • R数据结构

    7.数据框(data frame):用于存储表格数据,可视为各元素长度相同的列表。每个元素代表一列数据,每个元素的长度代表行数,元素类型可以不同。(数学理解:相当于几个列向量构成的向量组)

    创建数据框:df <- data.frame(id = c(1,2,3,4), name=c("a","b","c","d"), gender=c(TRUE, TRUE, FALSE, FALSE)) #每个参数定义一个字段

    查看数据框行数与列数:nrow(df), ncol(df)

    将数据框转换成矩阵:

    > df2 <- data.frame(id=c(1,2,3,4), score=c(80,86,90,100))
    > df2
      id score
    1  1    80
    2  2    86
    3  3    90
    4  4   100
    > data.matrix(df2)
         id score
    [1,]  1    80
    [2,]  2    86
    [3,]  3    90
    [4,]  4   100


    查看全部
  • R数据结构

    6.缺失值(missing value):NA/NaN,其中NaN属于NA。NaN表示数字的缺失值,NA可以表示数字缺失值、字符缺失值等

    判断是否有缺失值:is.na()/is.nan()

    > x <- c(1, NaN, 2, NA, 3)
    > is.na(x)
    [1] FALSE  TRUE FALSE  TRUE FALSE
    > is.nan(x)
    [1] FALSE  TRUE FALSE FALSE FALSE


    查看全部
  • > x<-factor(c("female","female","male","male","female"))

    > x

    [1] female female male   male   female

    Levels: female male

    > y<-factor(c("female","female","male","male","female"),levels = c("male","female"))

    > y

    [1] female female male   male   female

    Levels: male female

    > table(x)

    x

    female   male 

         3      2 

    > unclass(x)

    [1] 1 1 2 2 1

    attr(,"levels")

    [1] "female" "male"  


    查看全部
  • R + Python + SQL + Excel

    查看全部
  • #tapply函数的应用
    #对向量的子集进行操作
    x<-c(rnorm(5),runif(5),rnorm(5,1))#第三个为均值为1,方差为0的正态分布
    f<-gl(3,5)#
    tapply(x,f,mean)
    tapply(x,f,mean,simplify=FALSE)
    
    #存在许多不懂得东西


    查看全部
  • #Mapply

    #lapply的多元版本
    #mapply(函数/函数名,数据,函数相关的参数)
    list(rep(1,4),rep(2,3),rep(3,2),rep(4,1))
    mapply(rep,1:4,4:1)
    
    s<-function(n,mean,std){rnorm(n,mean,std)}#写出自己的函数
    s#运行上述定义的函数,必要
    s(4,0,1)#使用具体数字
    mapply(s, 1:5,5:1,2)#对应关系为后三个元素依次与s()中的三个元素一一对应


    查看全部
  • #apply的使用

    #apply,沿着数组的某一个维度处理数据
    x<-matrix(1:16,4,4)
    apply(x,2,mean)#求列的平均
    apply(x,2,sum)#求列的和
    rowSums(x)#同样可以求行的和
    rowMeans(x)
    colSums(x)
    colMeans(x)
    
    x<-matrix(rnorm(100),10,10)
    apply(x,1,quantile,probs=c(0.25,0.75))#quantile求数据的百分位点
    x<-array(rnorm(2*3*4),c(2,3,4))
    apply(x,c(1,2),mean)#以第1及第2维为基础,沿第3方向压成平面
    apply(x,c(1,3),mean)
    apply(x,c(2,3),mean)


    查看全部
    1 采集 收起 来源:R语言函数 apply

    2018-10-11

  • #lapply的应用
    x<-list(a=1:10,b=c(11,21,31,41,51))
    lapply(x,mean)#将返回一个列表,内容为列表x中单个元素的平均值(函数起到循环作用)
    x<-1:4
    lapply(x,runif)#从均匀分布的总体中抽取若干个数出来
    lapply(x,runif,min=0,max=100)#runif的默认区间为0-1;设定了min和max,更改了runif的区间为1-100
    x<-list(a=matrix(1:6,2,3),b=matrix(4:7,2,2))
    lapply(x,function(m)m[1,])#取出矩阵x中两个元素中第一行的元素
    #sapply
    x<-list(a=1:10,b=c(11,21,31,41,51))
    lapply(x,mean)
    sapply(x,mean)#简化lapply的数据,也起循环的作用
    class(lapply(x,mean))#返回列表
    class(sapply(x,mean))#返回数值
    #sapply:简化结果
    结果列表元素长度均为1,返回向量;
    长度相同且大于1,返回矩阵。


    查看全部
  • #向量化操作

    #可作用于矩阵及向量
    x<-1:5
    y<-6:10
    x+y#两个向量对应元素相加
    x*y#两个向量对应元素相乘
    x/y#两个向量对应元素相除
    x<-matrix(1:4,2,2)
    y<-matrix(rep(2,4),2,2)#rep()函数是值将第一个元素重复第二个元素次数,将2重复4次
    x+y#矩阵对应元素相加
    x*y#矩阵对应元素相乘
    x/y#矩阵对应元素相除
    #真正的矩阵乘法
    x%*%y#矩阵相乘


    查看全部
    2 采集 收起 来源:向量化操作

    2018-10-10

  • #取出列表中某一个元素

    x<-list(id=1:4,heigh=170,gender="male")
    x[1]
    x["id"]#两个函数作用相同

    #取出列表中某一个元素的内容

    x<-list(id=1:4,heigh=170,gender="male")
    x[[1]]
    x[["id"]]
    x$id#三个函数作用相同

    #同时取出列表中多个元素

    x<-list(id=1:4,heigh=170,gender="male")
    x[c(1,3)]

    #列表的不完全匹配

    x<-list(a=list(2,3,4,5),b=c("Monday","Tuesday"))
    x
    x[[1]][[2]]#第1个元素中的第2个元素,嵌套的两个方括号
    x[[2]]
    x[[1]][2]
    x[[c(1,3)]]#取出列表中第1个元素中的第3个元素
    x[[c(2,2)]]#取出列表中第2个元素中的第2个元素
    l<-list(asdfghj = 1:10)
    l$asdfghj
    l$a#与上一个命令得出相同结论,称之为列表的不完全匹配
    l[["asdfghj"]]#取出名为asdfghj的元素,要打双引号
    l[["a"]]#得出的结果为空
    l[["a",exact=FALSE]]#第二个命令为关闭了精准匹配以进行不完全匹配
    rm(x)
    x<-list(asdfghj = 1:10,b=c("a","s","d"),aaa=2:11)
    x$a#出现两个元素前部分相同时,R将不能识别
    x[["a",exact=FALSE]]#出现两个元素前部分相同时,R将不能识别
    x$aa#能识别了


    查看全部
    1 采集 收起 来源:列表的子集

    2018-10-09

  • 第二章小结

    https://img1.sycdn.imooc.com//5bbabffb0001023911030617.jpg

    查看全部
    1 采集 收起 来源:小结

    2018-10-08

  • 矩阵matrix

    向量+维度属性(整数向量:nrow,ncol)

    x<-matrix(nrow:2,ncol:3)

    在行数列数前添加矩阵内容

    x<-matrix(1:6, nrow=2, ncol=3)

    矩阵维度的属性:dim

    dim(x)  #可以查看当前矩阵x有多少行,多少列


    矩阵属性:attributes

    attributes(x)

    运行之后得到dim

    【1】3 2

    #当前这个矩阵的属性是维度

    第二种创建矩阵的办法:

    y<-1:6,

    dim(y)<c(2,3)

    #运行之后,y成功便成一个矩阵


    如何拼接两个矩阵

    y2<-matrix(1:6,nrow=2, ncol=3)

    rbind(y,y2) #按照行拼接 行数相加得到2+2行,3列矩阵

    cbind(y,y2) #按照列拼接 列数相加得到2行,3+3列矩阵


    数组 array ,维度可以大于2,矩阵只能等于2

    x<-array(1:24, dim=c(4,6))

    x1<-array(1:24, dim=c(2,3,4))




    查看全部

举报

0/150
提交
取消
课程须知
本课程需要学员提前掌握 安装好R和Rstudio
老师告诉你能学到什么?
1、R语言的数据结构 2、构建数据子集 3、重要函数的使用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!