本文内容来源:https://www.dataquest.io/mission/126/introduction-to-r

本文数据来源:https://www.whitehouse.gov/21stcenturygov/tools/salaries

本文摘要:简单介绍了一下R语言的入门语法

 

赋值

大部分的语言对变量赋值都是使用等号(=),R语言也支持用等号赋值,但是,最传统且默认的赋值方法是用( <- )符号

a <- 100  # 给a变量赋值100

print(a)   # 使用print函数来输出,输出结果为[1] 100

print( class(a))  # 使用class函数可以查看变量的数据类型,在R中比较常用的数据类型有character(用来保存文本),numeric(保存数字),输出结果为[1] numeric

 

向量

使用c函数来创建一个向量,注意:R中的向量是从1开始计数的

russianPresidents <- c("Mikhail Gorbachev", "Boris Yeltsin", "Vladimir Putin")

print(russianPresidents[1]) # 输出[1] "Mikhail Gorbachev"

print( length(russianPresidents)) # length函数用来输出变量的长度,这里输出[1] 3

applePrices <- c(113, 114, 115)

print(applePrices[1])  # 输出[1] 113

 

其实,在最开始的赋值语句 a <- 100中,R实际上也是创建了一个向量,相当于a <- c(100)

a <- 100

b <- c(100)

print(identical(b, a)) # identical函数用来检查两个变量的类型是否一致,这里输出[1] TRUE

 

对一个向量直接进行数学运算如加减乘除,实际上是对变量中的每一个元素都进行运算

stockPrices <- c(10, 9, 11, 15)

print(stockPrices + 2) # 输出[1] 12 11 13 17  实际上返回的是一个新的向量

print(stockPrices) # 输出[1] 10, 9, 11, 15 并没有覆盖掉原来的变量,所以原来变量保存的值不变

一个变量只能存储一种数据类型,所以,如果把多种数据类型存放在一个变量中,会发生数据转换

mixedVector <- c("Fifteen", 15, 0)

print(mixedVector) # 输出[1] "Fifteen"  "15" "0" ,两个数字都被转换为了字符串格式

 

矩阵

向量是一维的数据,而矩阵则是多维数据,使用matrix函数来创建矩阵

B <- matrix(c(1,2,3,4,5,6), 3, 2) # 将一个向量转换成一个3×2的矩阵,一定要注意的是向量的长度要等于维度的积

print(B)

#输出:

     [,1]   [,2]

[1,]    1    4

[2,]    2    5

[3,]    3    6

 

对矩阵的元素进行索引

print(B[2,1]) # 输出第二行第一列的数据:[1]  2

print(B[,1])  #输出第一列的数据,[1] 1 2 3

print(B[1,])  #输出第一行的数据,[1] 1 4

 

函数

定义一个加法函数

add <- function(a, b){

    d <- a + b

    return(d)

}

print( add(1, 2)) # 调用了上面定义的add函数

上面定义了一个名为add的变量,该变量赋值了一个执行加法的函数,function是定义函数的关键词,a和b则是要传入的参数

 

读取数据

原始数据展示(这是一份白宫人员的薪酬表,每一行代表了一个人的薪酬和其他信息)

Name,Status,Salary,Pay Basis,Position Title

"Abdullah, Hasan A.",Detailee,105960,Per Annum,POLICY ADVISOR

"Abraham, Sabey M.",Employee,55000,Per Annum,ENERGY AND ENVIRONMENT DIRECTOR FOR PRESIDENTIAL PERSONNEL

 

在R中,使用函数read.csv来读取一个csv文件

whiteHouse <- read.csv('2015_white_house.csv')

whiteHouse此时的数据类型是data frame,与矩阵不同之处在于矩阵只能存储一种数据类型的元素,而data frame可以存储不同数据类型的元素,并且data frame会自动把第一行的数据作为列名,所以可以使用列名来引用某一列

#要得到第一行第三列的数据

whiteHouse[1, 3]

#等价于

whiteHouse[1, ‘Salary’]

#而whiteHouse[‘Salary’]则代表了列名为Salary的那一列数据

需要注意的是虽然whiteHouse[‘Salary’]和whiteHouse[, ‘Salary’]返回的结果一样,但是他们之间是存在不同的,whiteHouse[‘Salary’]返回一个data frame对象,该对象只有一列数据。whiteHouse[ , ‘Salary’]返回的是一个向量

 

简单运算

要计算每个平均薪水

average = sum(whiteHouse[‘Salary’]) / nrow(whiteHouse[‘Salary’])

# sum函数计算一个向量或者矩阵的总和,nrow函数返回矩阵或者data frame的行数

 

查找最高、最低薪水

highestSalary = max(whiteHouse['Salary'])

lowestSalary = min(whiteHouse['Salary'])

R简易入门(一)的更多相关文章

  1. R简易入门(二)

    本文内容来源:https://www.dataquest.io/mission/128/working-with-data-frames 本文摘要:简单介绍一下用R处理数据   原始数据展示(这是一份 ...

  2. crontab简易入门

    前言 crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比 ...

  3. 机器学习简易入门(四)- logistic回归

    摘要:使用logistic回归来预测某个人的入学申请是否会被接受 声明:(本文的内容非原创,但经过本人翻译和总结而来,转载请注明出处) 本文内容来源:https://www.dataquest.io/ ...

  4. Pandas简易入门(二)

    目录:     处理缺失数据     制作透视图     删除含空数据的行和列     多行索引     使用apply函数   本节主要介绍如何处理缺失的数据,可以参考原文:https://www. ...

  5. 不用搭环境的10分钟AngularJS指令简易入门01(含例子)

    不用搭环境的10分钟AngularJS指令简易入门01(含例子) `#不用搭环境系列AngularJS教程01,前端新手也可以轻松入坑~阅读本文大概需要10分钟~` AngularJS的指令是一大特色 ...

  6. R图表入门

    R图表入门 R语言最强的功能就是统计和作图了,在学习了基本语法之后,博主马上体验了一下R的图表功能 条形图 例1 H = c(7,12,28,3,41) M = c("Mar",& ...

  7. Web压力测试工具 LoadRunner12.x简易入门教程--(一)回放与录制

        LoadRunner12.x简易入门教程--(一)回放与录制 今天在这里分享一下LoadRunner12.x版本的入门使用方法,希望对刚接触LoadRunner的童鞋有所帮助. LoadRun ...

  8. 用几分钟了解R语言入门知识

    第一篇——用几分钟了解R语言入门知识 第二篇——用几分钟了解R语言入门知识(续) 关于数据分析学习笔记的计划(以及目录)

  9. JNI简易入门

    JNI简介 JNI(Java Native Interface)是JDK的一部分,提供了若干API实现了Java和其他语言的通信(主要是C/C++).JNI主要用于以下场景: 贴近硬件底层的功能,Ja ...

随机推荐

  1. 【阿里云产品公测】一句话告诉你什么样的人该使用ACE,如何使用ACE

    作者:阿里云用户小鸡咕咕 首先回应标题,这一句话就是:看完这篇帖子你就知道了.     前言 写在文章之前,我想先阐述一下写这篇文章的意义.可能大伙就要说了,写这篇文章不就是为了200的代金券吗?错, ...

  2. 读取Excel文件的两种方法

    第一种方法:传统方法,采用OleDB读取EXCEL文件, 优点:写法简单,缺点:服务器必须安有此组件才能用,不推荐使用 private DataSet GetConnect_DataSet2(stri ...

  3. jQuery中json对象的复制(数组及对象) .

    1.jQuery自带的$.map方式: $.map(json, function (n) { return n; }); 这种方式原来用于复制数组还可以,今天用它复制数组中的某一条记录,发现字段名称丢 ...

  4. 【Linux】gdb调试core文件

    编写服务器端程序,很容易遇到Crash问题,比较幸运的是Linux提供了core file,保留了Crash的现场.有时候,根据当前的调用栈,并且打印出当前栈的变量就可以分析出crash的原因,但是, ...

  5. Oracle数据库查看执行计划

    基于ORACLE的应用系统很多性能问题,是由应用系统SQL性能低劣引起的,所以,SQL的性能优化很重要,分析与优化SQL的性能我们一般通过查看该SQL的执行计划,本文就如何看懂执行计划,以及如何通过分 ...

  6. 18个有用的 .htaccess 文件使用技巧

    .htaccess 是 Web 服务器 Apache 中特有的一个配置文件,操控着服务器上的许多行为,我们可以利用它来做许多事情,例如:设置访问权限,网址重定向,等等.本文向大家展示18条 .htac ...

  7. React Native学习-measure测量view的宽高值

    measure()测量是根据view标签中的ref属性,使用方法如下: measureWatermarkerImage(){ this.refs.watermarkerImage.measure((a ...

  8. codeforces 677C C. Vanya and Label(组合数学+快速幂)

    题目链接: C. Vanya and Label time limit per test 1 second memory limit per test 256 megabytes input stan ...

  9. 【BUG】---ng-show/ng-hide修改成功但没有效果

    问题:点击搜索,隐藏tab,出现搜索结果列表,调试也成功修改了分别元素的ng-hide就是没有效果 我的错误: <div ng-hide="{{isShow}}" class ...

  10. php生成 优惠券 激活码

    /** * 生成vip激活码 * @param int $nums 生成多少个优惠码 * @param array $exist_array 排除指定数组中的优惠码 * @param int $cod ...