美文网首页
R语言基础学习(二)

R语言基础学习(二)

作者: monkey_study | 来源:发表于2022-04-17 22:00 被阅读0次

    R语言基础第二部分学习,主要是
    1.reshape2包对数据整合,主要进行融合(melt)重塑(dcast)过程,这个过程也可以使用dplyr实现(没记错的话)。

    reshape2

    library(reshape2)   #加载reshape2包
    x <- data.frame(k1=c(NA,NA,3,4,5),k2=c(1,NA,NA,4,5),
                    data=1:5)
    y <- data.frame(k1=c(NA,2,NA,4,5),k2=c(NA,NA,3,4,5),
                    data=1:5)
    x
    y
    ?merge
    args(merge)  #查看函数的参数
    merge(x,y,by="k1")
    merge(x,y,by=c("k1","k2"))
    help(package="reshape2")
    melt()   #融数据  输入 object  对象, 数据框,矩阵,数组,列表
    airquality   #纽约的空气质量数据框  data.frame
    class(airquality)
    names(airquality)
    names(airquality)<-tolower(names(airquality))  #列名转换为小写
    air<- melt(airquality)  #数据融合,每一行都是标识符与变量的组合,然后用dcast函数重铸数据
    head(air,50)
    class(air)  #data.frame
    class(air$variable)   #"factor"
    head(airquality)
    air<- melt(airquality, id=c("month", "day"))  
    # ~   符号表示相关联,说明二者有联系
    aqw <- dcast(air,month+day~variable)
    aqw <- dcast(air,month~variable,fun.aggregate = mean,na.rm=T)
    

    tidyr

    chooseCRANmirror()
    library(tidyr)
    install.packages("tidyr")
    help(package="tidyr")
    mtcars
    tdata <- mtcars[1:10,1:3]
    qdata <- data.frame(names=rownames(tdata),tdata)   ##将names和tdata合并
    qdata<- gather(tdata,key="key",value = "value",cyl,disp,mpg)  #类似于reshape2的melt函数
    spread(qdata,key="key",value = "value")
    df <- data.frame(x=c(NA,"a.b-c","a-d","b-c"))
    df
    ?separate  #分割字符串列到多列
    x<- separate(df,col = x,into = c("c","d"),sep = "-")  #col  分割列,  into 分割之后的列名,字符串向量  sep 连字符设定
    ##多列合并为一列通过连接字符串在一块的方式
    unite(x,col = "cd",c,d,sep = "-")
    

    2.这部分也是对数据进行清洗整理,操作中间可以用管道符号%>%(快捷键 ctrl+shift+M)传递参数(类似于attach函数),mutate函数增加或者修改列,rename函数对列名进行重命名,filter以及select函数分别按照某种条件(逻辑型、数值、字符串都可以)对列与行进行选择。slice函数,按照位置信息去除任意一行。arrange函数对数据进行重排。
    ****join 取交集、并集、补集等

    dplyr

    library(dplyr)
    ls("package:dplyr")   #查看包中的函数
    ??dplyr
    ?slice
    dplyr::filter(iris,Sepal.Length>7)   #按照条件筛选符合的列
    dplyr::distinct(rbind(iris[1:10,],iris[1:15,]))     #去重复,类似unique
    dplyr::slice(iris,2)  #取出第二行
    #切片,按照位置信息取出数据的任何一行,挑选,去除,复制任意一行,输入为数据框
    iris[2,]
    mtcars %>% slice(1L)
    dplyr::sample_n(iris,10)  #随机抽取10行
    dplyr::arrange(iris,desc(Sepal.Length))    ##排序,desc函数,降序排序
    dplyr::arrange(iris,-Sepal.Length)  #负号等同于 desc函数
    dplyr::select()    #取子集
    ?select
    summarise(iris,avg=mean(Sepal.Length))   #计算Sepal.Length的平均值,并命名为avg
    ?summarise
    ### 链式操作符  %>%   快捷键  ctrl+shift+M
    dplyr::group_by(iris,Species)   #利用group_by 函数对iris根据Species列进行分组
    iris %>% group_by(Species) %>% summarise()    #分组并进行统计
    iris %>% group_by(Species) %>% summarise(avg=mean(Sepal.Width)) %>% arrange(avg)  #分组,求平均值,排序
    dplyr::mutate(iris,new=Sepal.Length+Petal.Length)  #增加或修改某一列
    
    ###connecte
    a <- data.frame(x1=c("A","B","C"),x2=c(1,2,3))
    b <- data.frame(x1=c("A","B","D"),x3=c(T,F,T))
    dplyr::left_join(a,b,by="x1")
    dplyr::right_join(a,b,by="x1")
    dplyr::full_join(a,b,by="x1")
    dplyr::semi_join(a,b,by="x1")   #根据右侧表的内容,对左侧表进行过滤
    dplyr::anti_join(a,b,by="x1")  #将a相对于b的补集输出。
    first <- slice(mtcars,1:20)
    setdiff()   ##取补集
    q()
    

    lm 用于线性拟合, 参数格式 因变量~自变量+自变量+互作变量,用summary函数查看结果

    R函数

    head(state.x77)
    class(state.x77)  #"matrix" "array" 
    colnames(state.x77)
    state <- as.data.frame(state.x77[,c("Murder","Population","Illiteracy","Income","Frost")])
    fit <- lm(Murder~Population+Illiteracy+Income+Frost,data = state)
    ?lm
    summary(fit)
    class(fit)
    ls()
    rm(fit)
    ##要清楚返回值得类型
    plot(a)  #返回图形
    ###清楚数据的输入数据格式
    # 输入数据类型
    # 向量   sum mean sd range median sort order 
    # 矩阵或者数据框   cbind   rbind
    # 数字矩阵  heatmap
    

    par函数,画图时可以设置一些有趣的参数,比如mar参数等

    选项参数

    # 选项是买什么,参数是买多少
    par()
    length(par())   #par函数有72个元素
    # 选项参数 包括 1.输入控制部分(函数可以接受哪些类型数据)
    # file:接一个文件
    # data:一般指要输入一个数据框
    # x:表示单独的一个对象,一般都是向量,也可以是矩阵或者列表
    # x和y:函数需要两个输入变量
    # x,y,z:函数需要三个输入变量
    # formula:公式
    # na.rm:删除缺失值
    ?sum
    ?sd   #一个变量
    ?plot  #二维
    library(scatterplot3d)
    ?scatterplot3d   #三维
    # ... 表示参数可以传递,通用
    # 统计分析中多数用到formula参数  一般用波浪线左连接
    # 2. 输出控制部分 
    # 3. 调节部分
    # 1.1 根据名字判断选项作用
    # color选项用来控制颜色
    # select与选择有关
    # font与字体有关   font.axis坐标轴的字体
    # lty是line type    lwd是line width
    # method  软件算法
    # 1.2 选项接受那些参数
    # main:字符串,不能是向量
    # na.rm:TRUE或者FALSE
    # axis:side参数只能是1到4  ,坐标轴的方向
    # fig :包含四个元素的向量   图形区域的位置
    # 包含row和col  行列
    
    

    相关文章

      网友评论

          本文标题:R语言基础学习(二)

          本文链接:https://www.haomeiwen.com/subject/jfqrertx.html