爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 65540|回复: 33

[其他] R语言与大气科学的那些事

[复制链接]
发表于 2020-4-13 15:46:48 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
之前开了一贴,准备介绍R语言在大气科学中的应用。然而,时隔快一年,一篇帖子都没更新,实在忏愧。
在此立个flag,定时更新,结合自己的使用经验,对R在大气科学中应用做介绍。请大家监督。

点评

欢迎在此分享,而不是引流,已删除推广的图片。  发表于 2020-4-16 09:02

评分

参与人数 3金钱 +32 贡献 +3 收起 理由
lleoiu + 10 + 1
mofangbao + 10 + 2
郭衡 + 12 赞一个!

查看全部评分

密码修改失败请联系微信:mofangbao
 楼主| 发表于 2020-4-13 16:03:27 | 显示全部楼层
开篇--R语言简介及安装
R语言的祖宗是S语言,S语言由AT&T贝尔实验室开发。根据TIOBE (没事儿喜欢统计各编程语言的应用热度)官方统计,2020年1月R语言的热度位居第18,高MATLAB两个名次。
       私以为R语言有以下几个特点:(一)完全免费开源。R是完全开源的,从安装到使用你不用花一分钱。(二)R有大量的资源包。得益于大量开发者的努力,目前R语言有2万+资源包。想分析个数据、画个图 甚至做个网页,没问题,统统可以搞定。(三)简单易学。没有编程基础,怕学不会?NO problem,半小时入门、1天学会基本应用,这都是小意思。(四)有世界上第二好用的(不敢说第一,违反广告法QAQ)集成开发环境。RSTUDIO是非常优秀的IDE,你想要的它都有。(五)贼适合大气科学中的数据处理及绘图。
       说了这么多优点,你是不是心动了,想跃跃欲试呢?ok,让我们开始快乐的旅程吧~~
     Step one:分别下载R和RSTUDIO的安装包(下载地址居然发不出来,请移步我的微信公众号吧~~)。下载时注意系统位数(一般的电脑64位居多),以及安装包的版本(建议下最新版)。
      Step two:R的安装。默认你已经下载好了R和RSTUDIO哈~~。
(1)双击下载的R,像安装一般的软件一样,根据需要进行相关安装设置并不断点击下一步就可以啦。安装要点:安装路径可以改成你自己的啦。
桌面Ri386 3.4.4和Rx64 3.4.4,就表明安装成功啦!说明:R i386的是32位,R x64的是64位。当然要是你感觉桌面太乱,把这两个桌面快捷方式删了就行。
Step2 two:RSTUDIO的安装。特别说明:RSTUDIO只是R的一个集成窗口,本身不带R程序。因此,第一步是必不可少的。
点击下载的exe文件,双击安装,一路默认即可(图方便,我也是这么干的)。安装完成后,双击进入,控制台出现R version 3.6.2就表示安装成功啦。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-13 16:16:43 | 显示全部楼层
渐进--R语言基本知识学习任何一门编程语言首先要从基本语法开始呦~~。
我们先来看第一个实例,在屏幕输出'hello world !'  

  1. print('hello world !')
复制代码
温馨提示:R对大小写敏感~~
    在print('hello world !')中,被单引号(双引号也可以的)装进去的被称为字符串,是R语言常见的数据类型之一。向量、列表、矩阵、数组、因子等也是常见的数据类型。
1 向量
    当向量中有多个元素时,使用c()函数封装。e.g.
    小提示:R语言中'=' 和'<-' 意思相同,都是将右边的值赋给左边的字符。
  1. students = c('小明','小红','小李','小张')
  2. students <- c('小明','小红','小李','小张')
复制代码
2 列表
    列表是一个R对象,它可以包含许多不同类型的元素,如向量、函数、甚至任何你想放进去的东西。e.g.
  1. list_a = list('小王',23,'体重140','身高175','三维:10、10、10')
复制代码
3.矩阵
    R语言中的矩阵使用matrix函数创建。e.g.
  1. matrix_a = matrix(1:6, nrow=2)
复制代码
4.数组
    矩阵有两个维度,行和列。而数组可以有多维,使用array()函数创建。e.g.
  1. array_a = array( data = 0, dim = c(2,3))
复制代码
5.因子
    因子在R语言中可以用来表示名义型变量或有序变量。名义变量一般表示类别,如性别、种族等等。有序变量是有一定排序顺序的变量,如职称、年级等等。使用factor()函数创建因子。e.g.
  1. factor_a <- c("王", "李", "刘", "王",'李','赵')
复制代码
6.数据框
    数据框(data.frame)是R语言中最重要的一种数据类型,在R语言的数据存储、分析运算中占绝对重要的位置。下一讲,我们专门介绍数据框类型。


密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-13 16:28:52 | 显示全部楼层
渐进--R语言基本知识上一篇里我们介绍了R的基本数据类型,今天着重介绍R语言中的数据框(也有叫数据帧)(data.frame)类型。data.frame是数据分析中的利器,数据切片、索引、聚合、分组等都离不开它,是R中应用最广泛的数据类型。好啦,话不多说,下面上干货~~
首先,来创造你的第一个数据框:
  1. age = c(10,20,30,40,50,60,70) #创建一个向量,多个元素时用从c()封装。#在R中表示注释,后面代码并不执行。
  2. name = c('小王','小明','小李','小赵','小周','小吴','小陈') #创建一个字符串向量,字符串需要用引号封闭。
  3. class = c('一班','二班','三班','四班','五班','六班','七班')
  4. student_infor = data.frame(age, name, class) #创建数据框
复制代码

用R语言读取csv、txt、xls等格式的文件时,一般都读成数据框。那么数据框中的数据如何操作呢?且看以下分解:

(1)数据索引和切片一:列名索引
        上面的student_infor有三列,每列有列名。例如选取age列:
  1. student_infor$age # $符号,键盘上用shift+4输入
复制代码
$符号是不是很奇怪~~。可以这么理解,让别人在后面跟着,当然得先给钱了~~。当然,下面的选取方式也是可行的。

  1. student_infor['age']
复制代码
选取多列用c()将列名封闭:

  1. student_infor[c('age','name')]
复制代码

二:数字索引

        也可以通过数字选取:

  1. student_infor[1] #选取第一列
  2. student_infor[1:2] #选取第1到2列
  3. student_infor[c(1,3)] #选取第1和第3列
复制代码

三:行号索引

  1. student_infor[1,] #选取第一行
  2. student_infor[1:5,] #选取第1到5行
  3. student_infor[c(1,4,6),] #选取第1、4、6行
复制代码

(2)数据筛选

筛选符合条件的数据是经常用到的技巧(类似excel中的透视表),请看如下操作示例:

  1. #将student_infor中小李的信息筛选出来
  2. student_infor[which(student_infor$name == '小李'),]
复制代码
  1. #选取年龄大于10的学生
  2. student_infor[which(student_infor$age > 10),]
复制代码
  1. #选取年龄大于10并小于50的学生
  2. student_infor[which(student_infor$age > 10 & student_infor$age < 50),]
复制代码
(3)数据框的增、删、改
一:改列名
  1. names(student_infor) #获取列名
  2. names(student_infor)[2] = 'student_name' #将第二列的名字改为student_name
复制代码
二:增加新的列
  1. #创建一个新向量student_city
  2. student_city = c('北京','上海','广州','深圳','杭州','苏州','天津')
  3. #将city添加到student_infor数据框里
  4. student_infor$city = student_city
复制代码
三:删除列
  1. 这样就把第一列去掉了
  2. student_infor_new = student_infor[-1]
  3. #也可以直接选择,达到去除其它列的目的
  4. student_infor_new = student_infor[1:3]
复制代码
(4)数据框的常用函数
    当我们可以对数据进行一些预览之类的操作,如下:
  1. summary(student_infor) #查看数据框总结
复制代码
  1. head(student_infor) #查看前几行
  2. tail(student_infor) #查看后几行
复制代码
最后的实操:
        求student_infor中age列的平均值、最大值、最小值、标准差、中值。

  1. mean(student_infor$age)
  2. max(student_infor$age)
  3. min(student_infor$age)
  4. sd(student_infor$age)
  5. median(student_infor$age)
复制代码



密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2020-4-13 16:35:20 | 显示全部楼层
期待楼主大作
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-13 16:36:29 | 显示全部楼层

谢谢。您的支持,是我最大的动力。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2020-4-13 21:30:09 | 显示全部楼层
期待!!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

发表于 2020-4-13 23:15:32 | 显示全部楼层
为什么 我安装了Rstudio  然后选择R版本的时候,这里打开一直就显示 R未安装
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2020-4-14 09:12:44 | 显示全部楼层
一夜荒原 发表于 2020-4-13 23:15
为什么 我安装了Rstudio  然后选择R版本的时候,这里打开一直就显示 R未安装

有可能是你的R 和Rstudio 安装的路径不一致 R和Rstudio最好按默认路径安装 路径里面最好不要有中文
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2020-4-14 09:57:04 | 显示全部楼层
si18 发表于 2020-4-14 09:12
有可能是你的R 和Rstudio 安装的路径不一致 R和Rstudio最好按默认路径安装 路径里面最好不要有中文

解决了 谢谢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表