R语言快速入门上手
导言:
较早之前就听说R是一门便捷的数据分析工具,但由于课程设计的原因,一直没有空出足够时间来进行学习。最近自从决定本科毕业出来找工作之后,渐渐开始接触大数据行业的技术,现在觉得是时候把R拿下了;用了3天时间,除了对R先有一个大概认识之外,也着手敲指令。由于计算机专业的底子还不错,而且先后接触过不下10种编程语言,感觉R语言入门上手还是挺简单的。下面是自己汇总的一些简单入门代码供大家参考,感兴趣的朋友也可逐行敲打测试。
- 1. 介绍变量、顺序结构、分支结构、循环结构、函数使用、获取帮助等知识
#---这是注释---
#R变量类型及赋值
x <- 1.12;print(x)
y <- c(,,,);print(y)
z <- c("Dog","Pig","Cat");print(z)
v <- c(T,F,T,T) print(v) "Me" -> I
"Her" -> H #assign赋值函数
assign("t",);print(t) Me <- 'You'
assign(Me,);print(You) #cat()函数多数据输出
cat("x=",x,"\n") #ls()显示当前工作环境所有变量及函数
ls()
#ls.str()函数查看当前工作环境变量及函数的详细属性
ls.str() #rm()删除指定变量或函数
rm(x)
#rm(list=ls())删除全部,慎用! #-------------------------- #分支语句:if ,else ,ifse
x <-
if(x>) print("正数") x <-
if(x==) print("x=1") score <-
if(score >= ){
print("A")
}else if(score >= ){
print("B")
}else if(score >= ){
print("C")
}else if(score >=){
print("D")
}else {
print("不及格")
} #switch 条件分支,跟C语音类似
x <-
switch(x,
print("Choice 1"),
print("Choice 2"),
print("Choice 3")
) #循环语句for,while,repeat
s <-
vars <- :
for(i in vars){
s <- s+i
}
print(s) sum <-
i <-
while(i<=){
sum <- sum+i
i <- i+
}
print(sum) #-----------------
- 2. 介绍向量、数组、列表、数据框、日期时间等数据结构的基础知识,以及生成这些结构的方法
#向量
x0 <- c(,,,,);print(x0)
x1 <-:;print(x1) x2 <-seq(from=,to=);print(x2) #seq()修改步长by=
x3 <- seq(from=,to=,by=);print(x3)
#seq() 等分为length.out 份
x4 <- seq(from=,to=,length.out=);print(x4) y1 <- rep(,);print(y1)
y2<-rep("Hey",);print(y2) #sample()抽样函数
y3 <- sample(x=:,size=,replace=F);print(y3)
y4 <- sample(x=c(,),size=,replace=T);print(y4) #正态分布随机函数rnorm()
z1 <- rnorm(n=);print(z1)
z2 <- rnorm(n=,mean=,sd=);print(z2) #日期标准化转换as.Date()
D <- "1993-1-01"
A <- as.Date(D);print(A) #一维、多维数组
t1 <- :
dim(t1)<-c(,)
print(t1) t2 <-array(rnorm(,,),dim=c(,,))
print(t2)
print(length(t2)) #所有元素总数量 #数据框data.frame
df <- data.frame(Sname=c("Zhu","Lin","Li"),Sage=c(,,),Ssex=rep("Boy",))
df
print(class(df)) #列表list
li <- list(Sname=c("Chen","Zhu","Lin","Li"),Sage=c(,,),Ssex=rep("Boy",))
li
print(class(li)) #--------------------
- 3. 介绍R提供了极其灵活的方式,访问、修改、向量、列表、数据框等数据结构,以及R中很多重要、常用的数据分析函数
#3-1访问向量元素 x <- :;print(x)
print(x[])
print(x[-])
print(x[:])
print(x[: * ])
print(x[c(,,)])
print(x[x>])
print(x[x > mean(x)]) names(x)<-LETTERS[:];print(x)
print(y["C"])
View(y) #修改指定位置的向量元素值r
z <- :;print(z)
z[]<-;print(z) z1<-:;print(z1)
z1<-c(x,,,);print(z1) z1[length(z1)+] <- ;print(z1) #----------------------- #列表list
li <- list(Sname=c("Chen","Zhu","Lin","Li"),Sage=c(,,),Ssex=rep("Boy",))
li print(li$Sname)
print(li[[]])
print(li$Sage[]) names(li)
li$SDate <- as.Date(rep("2014-12-12",));
names(li) #在列表任意位置添加一个新元素
z <- list(Sheight=c(,,,))
li <- append(li,z,after=) names(li) #删除列表中的指定项
li$Sage <-NULL
names(li) #-----------------------
#矩阵访问 data(EuStockMarkets)
print(head(EuStockMarkets))
print(class(EuStockMarkets))
print(summary(EuStockMarkets)) View(EuStockMarkets) rowTotal <- rowSums(EuStockMarkets) #矩阵内部必须全数值
EuStockMarkets <- cbind(EuStockMarkets,rowTotal)
colTotal <-colSums(EuStockMarkets)
EuStockMarkets <- rbind(EuStockMarkets,colTotal) print(tail(EuStockMarkets)) #访问数据框
#数据框data.frame
df <- data.frame(Sname=c("Zhu","Lin","Li"),Sage=c(,,),Ssex=rep("Boy",))
df
print(df[,]) #访问第一行
print(df[,]) #访问第二列 print(df$Sname) #当需要频繁访问某一个数据框时,可以使用attach()加载到搜索框 attach(df) print(Sage)
print(Sname)
print(Ssex)
detach(df)
ls() #-------------------------
#- R语言基本分析函数
ls.str() x<-:
#查找最大、最小及平均值
#print(which,max(x))
#print(which,min(x)) print(mean(x))
print(max(x))
print(min(x)) w <- c(,,,,,,,,)
print(sort(w))
print(sort(w,decreasing=T)) #降序排列 #日期字符串向量
szDate <-c("2014-3-18","2014-03-1","2014-01-01","2013-01-02","2011-04-14")
t <- as.Date(szDate)
t <- sort(t);print(t) #反序排序rev()函数
x <- c(,,,,,,,,)
print(x);print(rev(x)) print(t);print(rev(t)) #获取‘游程’信息rle()
x1 <- c(,-,,,-,-,,,,,,)
y1 <- rle(x1)
print(mode(y1))
str(y1) x2 <- rnorm(,,)
print(x2)
breaks <- c(-,-,,,)
y2 <- cut(x2,breaks)
print(summary(y2)) #match() 匹配函数
x3 <- c(,,,,,,)
print(match(x,))
print(match(x,c(,))) #计算组合数、排列数
print(choose(,))
print(choose(,))
print(factorial())
print(factorial()) #符号函数sign(),只有1,-,
cat("sign()函数运算结果:",sign(),",",sign(2.13),",",sign(-1.2),"\n",sep="") x4 <- c(,,NA,,,,,NA,,)
y4 <- na.omit(x4);print(y4) dim(x4)<-c(,)
print(x4)
print(na.omit(x4)) x4 <- c(,,NA,,,,,NA,,)
y4 <- na.omit(x4);print(y4)
#检测数据是否包含NA
na.fail(x4);
na.fail(y4); #去除重复数据
x4 <- c(,,NA,,,,,NA,,)
print(unique(x4)) #subset()子数据集筛选函数
v1 <- subset(airquality, Temp > , select = c(Ozone, Temp))
v2 <- subset(airquality, Day == , select = -Temp)
v3 = subset(airquality, select = Ozone:Wind)
#查看数据
head(v3) #-------------------------
结语:
怎么样?是不是很easy!当然,这只是R语言入门上手的第一part,后续有待更新。。。
R语言快速入门上手的更多相关文章
- R语言快速入门
R语言是针对统计分析和数据科学的功能全面的开源语言,R的官方网址:http://www.r-project.org/ 在Windows环境下安装R是很方便的 R语言的两种运行模式:交互模式和批处理模 ...
- c语言快速入门3
如果你想快速入门计算机,可以参考我的上一篇帖子,先了解一些必备的软知识,然后再来进行语言的快速入门 计算机入门基础知识 c语言快速入门1 c语言快速入门2 3.4.1 字符和字符串 字符:'' 单个 ...
- c语言快速入门2
如果你想快速入门计算机,可以参考我的上一篇帖子,先了解一些必备的软知识,然后再来进行语言的快速入门 计算机入门基础知识 c语言快速入门1 1.1.12 函数的概念 函数的定义:c语言的基本单位,c语言 ...
- Swift语言快速入门
Swift语言快速入门(首部同步新版官方API文档和语法的Swift图书,确保代码可编译,作者专家在线答疑,图书勘误实时跟进) 极客学院 编著 ISBN 978-7-121-24328-8 201 ...
- [SQL]SQL语言入门级教材_SQL语言快速入门(五)
SQL语言快速入门(一) SQL是英文Structured Query Language的缩写,意思为结构化查询语言. SQL语言的主要功能就是同各种数据库建立联系,进行沟通.按照ANSI(美国国家标 ...
- Dart语言快速学习上手(新手上路)
Dart语言快速学习上手(新手上路) // 声明返回值 int add(int a, int b) { return a + b; } // 不声明返回值 add2(int a, int b) { r ...
- go语言快速入门教程
go快速入门指南 by 小强,2019-06-13 go语言是目前非常火热的语言,广泛应用于服务器端,云计算,kubernetes容器编排等领域.它是一种开源的编译型程序设计语言,支持并发.垃圾回收机 ...
- R语言基础入门之二:数据导入和描述统计
by 写长城的诗 • October 30, 2011 • Comments Off This post was kindly contributed by 数据科学与R语言 - go there t ...
- 【计理05组01号】R 语言基础入门
R 语言基本数据结构 首先让我们先进入 R 环境下: sudo R 赋值 R 中可以用 = 或者 <- 来进行赋值 ,<- 的快捷键是 alt + - . > a <- c(2 ...
随机推荐
- MVC PageList使用(异步 与 正常)
此项目的功能为1.将数据分页显示,2.搜索数据按分页显示 3.异步或同步传递 一.第一步引用 mvc PageList插件 二.控制器写法 ) //为空则默认第一页 { var lm = DataBL ...
- nodejs里的module.exports和exports的关系
关于node里面的module.exports和exports的异同,网上已经有很多的资料,很多的文章,很多的博客,看了很多,好像懂了,又好像不懂,过几天又不懂了...大致总结是这样的: //下面这种 ...
- python设计模式1:创建型模式
1.原型模式 如果想根据现有的对象复制出新的对象并进行修改,可以考虑“原型模式”,而无需知道任何创建细节.(有点像写轮眼...你不需要知道它) import copy class Point: __s ...
- BZOJ 4003 【JLOI2015】城池攻占
Description 小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑士攻占 n 个城池. 这 n 个城池用 1 到 n 的整数表示.除 1 号城池外,城池 i 会受到另一座城池 fi 的管辖, ...
- UML:类图复习-鸡生蛋,蛋生鸡
这是前一阵<高级软件工程>课堂上,老师随堂出的一道讨论题,随手贴在这里: ps: 今天是520,正好聊一些OoXx,关于爱的扯淡话题:) 题目:“鸡生蛋,蛋孵鸡”,世间万物生生不息,如何用 ...
- 在win8(win8.1)电脑上安装IIS,配置web服务器,发布网站
1.IIS安装: 打开控制面板——程序和功能——启用或关闭Windows功能——找到(Windows功能下)下的(Internet Infornation Services)把Web 管理工具和万维网 ...
- spring+mybaties+springMvc+slf4j所需jar包
- SQL语言概述
功能概述 DDL,数据库定义语言,创建,修改,删除数据库,表,视图,索引,约束条件等 DML,数据库操纵语言,对数据库中的数据进行增,删,改,查 DCL,数据库定义语言,对数据库总数据的访问设置权限 ...
- 74 partprobe-磁盘管理
partprobe命令用于重读分区表,当出现删除文件后,出现仍然占用空间.可以partprobe在不重启的情况下重读分区. 语法 partprobe (选项) (参数) 选项 -d:不更新内核: -s ...
- jqMobile中pageinit,pagecreate,pageshow等函数的执行顺序
常见的共有5个page函数,刚开始有点迷糊的是到底谁先谁后执行. 实验告诉我们结果: var temp = ''; $('body').live('pagechange', function () { ...