R语言入门 (有其他编程语言基础)
慢慢才意识到概率统计的重要性,当时学的时候只知道很重要,是机器学习基础啥的,但是却没有真正意识到( ╯□╰ )。我现在的理解是,统计学习可以从大数据中挖掘出规律(其实和数据挖掘还是很相关的),在科研工作和生活中都可以帮助和指导我们。生活中,我们可以通过分析数据,“透过现象看本质” (learning from data),参考大概率发生的事件,帮助我们少走一些弯路,做出正确的决策。
最开始的概率思维来自大一的近现代史老师,老师说 “为什么公司要区分985,211等学位?”,其实我当时也不是很理解,我觉得哪里都会有优秀的人,但是老师说因为985,211大概率会比较优秀,这是来自大量公司的统计(不过撇过部分公司的硬性条件,不管是哪种学位,只要自己努力去变优秀,金子一定不会被埋没的!(ง •_•)ง)。后来的概率思维来自一位哲学老师分享的案例,比如分析理科学者,学术年龄38岁是个分界线,在38岁学术产出率达到高峰;还有对诺奖得主的工作岗位分析,发现多数都有在不同机构间流动的这一特征,得出流动性与职业成功的关系。显然,我们可以借鉴这些分析结果。(废话太多,进入正题)
学统计学,R语言是必不可少的,以下参考W3Cschool的教程:https://www.w3cschool.cn/r/
这里只是简单的总结,基本部分和其他语言都差不多,学习完这些基本之后,多写程序,需要的再查。
安装:使用conda安装R及Rstudio,但是我用conda-navigator装Rstudio报错,所以直接从Rstudio官网手动安装。
执行方式:和python一样,R的执行方式有两种,命令行和脚本文件
• 命令行:直接键入R
• 脚本:创建好脚本文件.R 之后,使用命令 Rscript xxx.R
注意事项:R 不支持多行注释,单行注释用#
数据类型:并不会声明为某种数据类型,而是直接赋予对象(动态类型语言)
变量:
字母,数字,下划线,点;以字母或不以数字后跟的点开头
如:.2a × .ab √
变量赋值:向左 向右 等于
打印:print() 和连续打印 cat()
查找工作空间中所有可用的变量print(ls()) print(ls(pattern="var")),以.开头的变量被自动隐藏,要输出:print(ls(all.names=TRUE))
运算符:
算数运算符: + - * /(正常除法) %%(余数) %/%(整除) ^
关系运算符:> < == <= >= !=
逻辑运算符: & | ! &&(仅作用于两个向量的第一个元素) ||(仅作用于两个向量的第一个元素)
赋值运算符: 左分配:= <- <<- 右分配:-> ->>
其他: : %*%(矩阵乘以其转置) %in%(判断某一元素是否在其内)
条件循环语句:
条件:
if:
else if:
else:
switch case
循环:
repeat
while
for
break; next (like continue in python);
包相关操作:
默认只有默认的R包可用,如果需要用自定义安装的则需要显示加载
.libPaths() 获取R包库位置
library() 获取已安装的所有包
search() 获取当前加载的所有包
安装:从cran自动安装 (install.packages("xxx") )+ 手动安装(从R pkgs(https://cran.r-project.org/web/packages/available_packages_by_name.html)下载对应zip,使用命令
install.packages("E:/XML_3.98-1.3.zip", repos = NULL, type = "source")
安装)
加载包到当前环境:library("")
数据重塑
cbind()函数连接多个向量来创建数据帧(连接列组成frame)。 此外,我们可以使用rbind()函数合并两个数据帧(合并sample)。
merge() melt() cast()
函数
自定义 : Name <- function(args){}
R有大量内置函数:seq() mean() max() sum() paste()
字符串
paste(..., sep = " ", collapse = NULL) sep是分割字符串的符号 collapse是字符串之间的空格操作
format()
nchar()
tolower()toupper()
substring("",begin,end)
数据类型详细
访问向量元素:t[c(index/bool/01)]
两个向量进行操作长度不同时,较短的会循环自身补足长度
sort(data,decreasing=TRUE)inverse
listdata中的每个元素可以赋予名字:names(list)<- c("","")
列表可以通过索引或者名字访问,list[1] list$name
通过赋值操作对列表实现增删改(增删只能末尾),删除时赋值为NULL
合并列表c(list1,list2)
使用unlist将列表转换为向量
图表
R语言强大的地方之一就在于其绘图功能,这里只是简单的内置函数的示意,还有很多强大的绘图包,如ggplot2。
结果如下:
箱线图可以反应数据集中数据的分布,也可以用来比较数据集之间的数据分布;直方图可以反应连续范围数据的频数/频率情况;折线图可以反应数据中发展的趋势。学会用图可以更加清晰直观的表达含义,一图胜千言,这在学术论文写作中也是非常有必要学习的。
还有其他文件读取,统计方法等R的语法,用到再查即可。
R语言入门 (有其他编程语言基础)的更多相关文章
- R语言入门(二)基础语法
1.help可以提供帮助,如help(nchar), help("[["),或者用?nchar也能获取帮助.example(nchar)可以获取到某个主题的使用方法. 2.ncha ...
- Go 语言入门(一)基础语法
写在前面 在学习 Go 语言之前,我自己是有一定的 Java 和 C++ 基础的,这篇文章主要是基于A tour of Go编写的,主要是希望记录一下自己的学习历程,加深自己的理解 Go 语言入门(一 ...
- 【Introduction】R语言入门关键小结
写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...
- 用几分钟了解R语言入门知识
第一篇——用几分钟了解R语言入门知识 第二篇——用几分钟了解R语言入门知识(续) 关于数据分析学习笔记的计划(以及目录)
- 使用Code First建模自引用关系笔记 asp.net core上使用redis探索(1) asp.net mvc控制器激活全分析 语言入门必学的基础知识你还记得么? 反射
使用Code First建模自引用关系笔记 原文链接 一.Has方法: A.HasRequired(a => a.B); HasOptional:前者包含后者一个实例或者为null HasR ...
- R语言入门1:安装R和RStudio
R语言入门1:安装R和RStudio 曹务强 中科院遗传学博士研究生 9 人赞同了该文章 1. Windows安装R 在Windows系统上,安装R语言比较简单,直接从R的官方网站下载,按照正常的软件 ...
- R语言入门:向量索引
这节的内容是建立在之前我们对R语言最基本向量赋值的基础之上的,笔者本人学完R当中向量的索引感觉异常舒适,因为这个比Python的索引爽多了,是什么值开始索引就从哪里开始索引,到哪里结束就在哪里结束,而 ...
- 《R语言入门与实践》第一章:R基础
前言 本章介绍了 R 语言的基础知识 界面: 使用命令 “ R “进行命令行的实时编译 对象 定义: 用于储存数据的,设定一个名称 格式: a <- 1:6 命名规则: 规则1:不能以数字开头规 ...
- R语言实战(一)——基础入门
从今天开始接触R语言,主要参考的书籍是<R语言实战>. 1.安装R语言程序 Windows:http://mirror.bjtu.edu.cn/cran/ Linux:apt-get in ...
随机推荐
- 无法执行 BACKUP LOG,因为当前没有数据库备份,导入数据库备份.bak文件
右键数据库——>任务——>还原——>数据库 无法执行 BACKUP LOG,因为当前没有数据库备份 结尾日志的问题 还原选择中去掉结尾日志就可以了
- Vue - 项目配置 ( element , 安装路由 , 创建路由 )
1,安装element : vue add element 2,安装路由 : vue add router 3,创建路由的过程 : (1) 新建 vu ...
- 【LeetCode】课程表 II
[问题]现在你总共有 n 门课需要选,记为 0 到 n-1.在选修某些课程之前需要一些先修课程.例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及 ...
- Python基础笔记:list和tuple
list 与 tuple 就类似于C语言中的数组,list 与 tuple 的区别就是list 可修改,而tuple不可修改: list用法示例: >>> s=[] >> ...
- Python 中使用 ddt 来进行数据驱动,批量执行用例,修改ddt代码
1. 什么是数据驱动? 使用数据驱动有什么好处? 用例执行是靠数据来驱动的,每条测试用例除了测试数据不一样意外,所有的用例代码都是一样的,为了使用例批量执行,我们会使用数据驱动的思想来批量执行测试用例 ...
- 019-PHP创建目录函数
<?php if (mkdir("myDir1", 0777)) //创建目录的函数 { print("目录创建成功"); //目录建立成功 } else ...
- js(JavaScript)使用${pageContext.request.contextPath}报错
前几天写程序在js文件中用到了${pageContext.request.contextPath}然后一直报错,没有办法post到服务器,原来js把这个当成字符串了,一直以为他是jquery的函数! ...
- Java中的super关键字和this关键字作用介绍
一.super关键字的作用 1.子类在构造方法中显示调用父类构造方法 super可以在子类的构造方法中显示调用父类的构造方法:并且这行代码必须出现在子类构造方法的第一行.原因:因为父类构造方法没有执行 ...
- vue小练习--音乐播放器
1 首先建一个文件夹 放几首歌曲 2 看代码 1)基本版本 <!DOCTYPE html> <html lang="zh-CN"> <head> ...
- 使用FragmentStatePagerAdapter时发现的内存泄露问题
这篇文章想说的并非是由于使用 FragmentStatePagerAdapter 而导致的内存泄漏,内存泄漏的真正原因和 FragmentStaePagerAdapter 并无直接关联,但是使用 Fr ...