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,"\n")
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.out 份
10 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,-1,0
53 cat("sign()函数运算结果:",sign(0),",",sign(2.13),",",sign(-1.2),"\n",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,后续有待更新。。。