• R语言快速入门上手


    导言:

        较早之前就听说R是一门便捷的数据分析工具,但由于课程设计的原因,一直没有空出足够时间来进行学习。最近自从决定本科毕业出来找工作之后,渐渐开始接触大数据行业的技术,现在觉得是时候把R拿下了;用了3天时间,除了对R先有一个大概认识之外,也着手敲指令。由于计算机专业的底子还不错,而且先后接触过不下10种编程语言,感觉R语言入门上手还是挺简单的。下面是自己汇总的一些简单入门代码供大家参考,感兴趣的朋友也可逐行敲打测试。

    • 1. 介绍变量、顺序结构、分支结构、循环结构、函数使用、获取帮助等知识
     1 #---这是注释---
     2 #R变量类型及赋值
     3 x <- 1.12;print(x)
     4 y <- c(1,2,4,3);print(y)
     5 z <- c("Dog","Pig","Cat");print(z)
     6 v <- c(T,F,T,T) print(v)
     7 
     8 "Me" -> I
     9 "Her" -> H
    10 
    11 #assign赋值函数
    12 assign("t",123);print(t)
    13 
    14 Me <- 'You'
    15 assign(Me,123);print(You)
    16 
    17 #cat()函数多数据输出
    18 cat("x=",x,"
    ")
    19 
    20 #ls()显示当前工作环境所有变量及函数
    21 ls()
    22 #ls.str()函数查看当前工作环境变量及函数的详细属性
    23 ls.str()
    24 
    25 
    26 
    27 #rm()删除指定变量或函数
    28 rm(x)
    29 #rm(list=ls())删除全部,慎用!
    30 
    31 #--------------------------
    32 
    33 
    34 #分支语句:if ,else ,ifse
    35 x <- 5
    36 if(x>0) print("正数")
    37 
    38 x <- 1
    39 if(x==1) print("x=1")
    40 
    41 score <- 89
    42 if(score >= 90 ){
    43     print("A")
    44 }else if(score >= 80){
    45     print("B")
    46 }else if(score >= 70){
    47     print("C")
    48 }else if(score >=60){
    49     print("D")
    50 }else {
    51     print("不及格")
    52 }
    53 
    54 #switch 条件分支,跟C语音类似
    55 x <- 2
    56 switch(x,
    57     print("Choice 1"),
    58     print("Choice 2"),
    59     print("Choice 3")
    60 )
    61 
    62 
    63 #循环语句for,while,repeat
    64 s <- 0
    65 vars <- 1:10
    66 for(i in vars){
    67     s <- s+i
    68 }
    69 print(s)
    70 
    71 sum <- 0
    72 i <- 1
    73 while(i<=10){
    74     sum <- sum+i
    75     i <- i+1
    76 }
    77 print(sum)
    78 
    79 #-----------------
    • 2. 介绍向量、数组、列表、数据框、日期时间等数据结构的基础知识,以及生成这些结构的方法
     1 #向量
     2 x0 <- c(1,2,3,4,5);print(x0)
     3 x1 <-1:10;print(x1)
     4 
     5 x2 <-seq(from=1,to=10);print(x2)
     6 
     7 #seq()修改步长by=2
     8 x3 <- seq(from=1,to=20,by=2);print(x3)
     9 #seq() 等分为length.out10 x4 <- seq(from=1,to=100,length.out=25);print(x4)
    11 
    12 
    13 y1 <- rep(1,10);print(y1)
    14 y2<-rep("Hey",3);print(y2)
    15 
    16 #sample()抽样函数
    17 y3 <- sample(x=1:100,size=10,replace=F);print(y3)
    18 y4 <- sample(x=c(0,1),size=10,replace=T);print(y4)
    19 
    20 #正态分布随机函数rnorm()
    21 z1 <- rnorm(n=10);print(z1)
    22 z2 <- rnorm(n=10,mean=100,sd=20);print(z2)
    23 
    24 #日期标准化转换as.Date()
    25 D <- "1993-1-01"
    26 A <- as.Date(D);print(A)
    27 
    28 
    29 #一维、多维数组
    30 t1 <- 1:20
    31 dim(t1)<-c(5,4)
    32 print(t1)
    33 
    34 t2 <-array(rnorm(40,10,5),dim=c(5,4,2))
    35 print(t2)
    36 print(length(t2))  #所有元素总数量
    37 
    38 #数据框data.frame
    39 df <- data.frame(Sname=c("Zhu","Lin","Li"),Sage=c(17,19,20),Ssex=rep("Boy",3))
    40 df
    41 print(class(df))
    42 
    43 #列表list
    44 li <- list(Sname=c("Chen","Zhu","Lin","Li"),Sage=c(17,19,20),Ssex=rep("Boy",4))
    45 li
    46 print(class(li))
    47 
    48 
    49 #--------------------
    • 3. 介绍R提供了极其灵活的方式,访问、修改、向量、列表、数据框等数据结构,以及R中很多重要、常用的数据分析函数
     1 #3-1访问向量元素
     2 
     3 x <- 1:10;print(x)
     4 print(x[2])
     5 print(x[-5])
     6 print(x[1:3])
     7 print(x[1:5 * 2])
     8 print(x[c(1,2,5)])
     9 print(x[x>5])
    10 print(x[x > mean(x)])
    11 
    12 names(x)<-LETTERS[1:10];print(x)
    13 print(y["C"])
    14 View(y)
    15 
    16 #修改指定位置的向量元素值r
    17 z <- 1:10;print(z)
    18 z[5]<-100;print(z)
    19 
    20 z1<-1:10;print(z1)
    21 z1<-c(x,11,12,13);print(z1)
    22 
    23 z1[length(z1)+1] <- 11;print(z1)
    24 
    25 #-----------------------
    26 
    27 
    28 #列表list
    29 li <- list(Sname=c("Chen","Zhu","Lin","Li"),Sage=c(17,19,20),Ssex=rep("Boy",4))
    30 li
    31 
    32 print(li$Sname)
    33 print(li[[1]])
    34 print(li$Sage[1])
    35 
    36 names(li)
    37 li$SDate <- as.Date(rep("2014-12-12",4));
    38 names(li)
    39 
    40 
    41 #在列表任意位置添加一个新元素
    42 z <- list(Sheight=c(172,170,178,180))
    43 li <- append(li,z,after=0)
    44 
    45 names(li)
    46 
    47 #删除列表中的指定项
    48 li$Sage <-NULL
    49 names(li)
    50 
    51 
    52 #-----------------------
    53 #矩阵访问
    54 
    55 data(EuStockMarkets)
    56 print(head(EuStockMarkets))
    57 print(class(EuStockMarkets))
    58 print(summary(EuStockMarkets))
    59 
    60 View(EuStockMarkets)
    61 
    62 rowTotal <- rowSums(EuStockMarkets) #矩阵内部必须全数值
    63 EuStockMarkets <- cbind(EuStockMarkets,rowTotal)
    64 colTotal <-colSums(EuStockMarkets)
    65 EuStockMarkets <- rbind(EuStockMarkets,colTotal)
    66 
    67 print(tail(EuStockMarkets))
    68 
    69 #访问数据框
    70 #数据框data.frame
    71 df <- data.frame(Sname=c("Zhu","Lin","Li"),Sage=c(17,19,20),Ssex=rep("Boy",3))
    72 df
    73 print(df[1,])  #访问第一行
    74 print(df[,2])  #访问第二列
    75 
    76 print(df$Sname)
    77 
    78 #当需要频繁访问某一个数据框时,可以使用attach()加载到搜索框
    79 
    80 attach(df)
    81 
    82 print(Sage)
    83 print(Sname)
    84 print(Ssex)
    85 detach(df)
    86 ls()
    87 
    88 #-------------------------
     1 #3-2 R语言基本分析函数
     2 ls.str()
     3 
     4 x<-1:100
     5 #查找最大、最小及平均值
     6 #print(which,max(x))
     7 #print(which,min(x))
     8 
     9 print(mean(x))
    10 print(max(x))
    11 print(min(x))
    12 
    13 w <- c(2,3,5,1,4,2,5,11,3)
    14 print(sort(w))
    15 print(sort(w,decreasing=T))  #降序排列
    16 
    17 #日期字符串向量
    18 szDate <-c("2014-3-18","2014-03-1","2014-01-01","2013-01-02","2011-04-14")
    19 t <- as.Date(szDate)
    20 t <- sort(t);print(t)
    21 
    22 #反序排序rev()函数
    23 x <- c(1,2,34,3,55,34,2,4,1)
    24 print(x);print(rev(x))
    25 
    26 print(t);print(rev(t))
    27 
    28 #获取‘游程’信息rle()
    29 x1 <- c(1,-1,1,1,-1,-1,1,1,1,1,1,1)
    30 y1 <- rle(x1)
    31 print(mode(y1))
    32 str(y1)
    33 
    34 
    35 x2 <- rnorm(10,10,5)
    36 print(x2)
    37 breaks <- c(-20,-10,0,10,20)
    38 y2 <- cut(x2,breaks)
    39 print(summary(y2))
    40 
    41 #match() 匹配函数
    42 x3 <- c(2,5,1,4,6,4,3)
    43 print(match(x,4))
    44 print(match(x,c(4,5)))
    45 
    46 #计算组合数、排列数
    47 print(choose(5,2))
    48 print(choose(30,10))
    49 print(factorial(10))
    50 print(factorial(3))
    51 
    52 #符号函数sign(),只有1,-10
    53 cat("sign()函数运算结果:",sign(0),",",sign(2.13),",",sign(-1.2),"
    ",sep="")
    54 
    55 
    56 x4 <- c(1,2,NA,2,3,4,2,NA,7,9)
    57 y4 <- na.omit(x4);print(y4)
    58 
    59 dim(x4)<-c(2,5)
    60 print(x4)
    61 print(na.omit(x4))
    62 
    63 
    64 x4 <- c(1,2,NA,2,3,4,2,NA,7,9)
    65 y4 <- na.omit(x4);print(y4)
    66 #检测数据是否包含NA
    67 na.fail(x4);
    68 na.fail(y4);
    69 
    70 #去除重复数据
    71 x4 <- c(1,2,NA,2,3,4,2,NA,7,9)
    72 print(unique(x4))
    73 
    74 #subset()子数据集筛选函数
    75 v1 <- subset(airquality, Temp > 80, select = c(Ozone, Temp))
    76 v2 <- subset(airquality, Day == 1, select = -Temp)
    77 v3 = subset(airquality, select = Ozone:Wind)
    78 #查看数据
    79 head(v3)
    80 
    81 
    82 #-------------------------

    结语:

          怎么样?是不是很easy!当然,这只是R语言入门上手的第一part,后续有待更新。。。

    -------- 以上内容纯属个人学习总结,不代表任何团体或单位。若有理解不到之处请见谅!---------
  • 相关阅读:
    数组类型
    约瑟夫环问题
    const在c和c++中地位不同
    Makefile学习之路——4
    单链表综合操作
    算法初探——大O表示法
    数据结构实用概念
    Makefile学习之路——3
    翻转字符串
    Makefile学习之路——2
  • 原文地址:https://www.cnblogs.com/SeaSky0606/p/4557595.html
Copyright © 2020-2023  润新知