R简易入门(一)
本文内容来源: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简易入门(一)的更多相关文章
- R简易入门(二)
本文内容来源:https://www.dataquest.io/mission/128/working-with-data-frames 本文摘要:简单介绍一下用R处理数据 原始数据展示(这是一份 ...
- crontab简易入门
前言 crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比 ...
- 机器学习简易入门(四)- logistic回归
摘要:使用logistic回归来预测某个人的入学申请是否会被接受 声明:(本文的内容非原创,但经过本人翻译和总结而来,转载请注明出处) 本文内容来源:https://www.dataquest.io/ ...
- Pandas简易入门(二)
目录: 处理缺失数据 制作透视图 删除含空数据的行和列 多行索引 使用apply函数 本节主要介绍如何处理缺失的数据,可以参考原文:https://www. ...
- 不用搭环境的10分钟AngularJS指令简易入门01(含例子)
不用搭环境的10分钟AngularJS指令简易入门01(含例子) `#不用搭环境系列AngularJS教程01,前端新手也可以轻松入坑~阅读本文大概需要10分钟~` AngularJS的指令是一大特色 ...
- R图表入门
R图表入门 R语言最强的功能就是统计和作图了,在学习了基本语法之后,博主马上体验了一下R的图表功能 条形图 例1 H = c(7,12,28,3,41) M = c("Mar",& ...
- Web压力测试工具 LoadRunner12.x简易入门教程--(一)回放与录制
LoadRunner12.x简易入门教程--(一)回放与录制 今天在这里分享一下LoadRunner12.x版本的入门使用方法,希望对刚接触LoadRunner的童鞋有所帮助. LoadRun ...
- 用几分钟了解R语言入门知识
第一篇——用几分钟了解R语言入门知识 第二篇——用几分钟了解R语言入门知识(续) 关于数据分析学习笔记的计划(以及目录)
- JNI简易入门
JNI简介 JNI(Java Native Interface)是JDK的一部分,提供了若干API实现了Java和其他语言的通信(主要是C/C++).JNI主要用于以下场景: 贴近硬件底层的功能,Ja ...
随机推荐
- 4. Android框架和工具之 android-async-http
1. android-async-http 简介 主要有以下功能: (1)发送异步http请求,在匿名callback对象中处理response信息: (2)http请求发生在UI(主)线程之外的 ...
- linux_cpu信息查询
查看cpu信息: [root@css-management ~]# cat /proc/cpuinfo processor : 0vendor_id : GenuineIntelcpu family ...
- mysql 重命名表名
先创建一张表: -- 创建用户表 CREATE TABLE user10( id SMALLINT UNSIGNED KEY AUTO_INCREMENT, username ) NOT NULL U ...
- 转移指令jmp和跳转指令call
[-1]写在前面 以下内容文字描述来自于 王爽老师的<汇编语言>教材,建议大家都买一本,哈哈.不是我打广告,确实人家写的好,应该支持.我只是附上了自己的图片和理解而已. [0]先上干货 只 ...
- cordova发送邮件插件:ngcordova plugin-Email Composer
这是ngcordova里边的一个发送邮件的插件,具体的使用方法为: (参考文档:http://ngcordova.com/docs/plugins/emailComposer/) 1.首先下载插件: ...
- 初识 Asp.Net内置对象之Response对象
Response对象 Respose对象用于将数据从服务器发送回浏览器.它允许将数据作为请求的结果发送到浏览器,并提供有光响应的信息,可以用来在页面中输入数据,在页面中跳转,还可以传递各个页面的参数, ...
- selenium修改控件属性
起因:在进行退出的时候,控件属性显示为不可显示,于是在界面上是不可以点击的,如果想点击这个按钮,只能通过修改控件属性,进行点击 上图看控件,正常来说,点击坐边的用户名,下拉会出现一个logout,退出 ...
- 浅谈实现placeholder效果的几种方案
placeholder是html5<input>的一个属性,它提供可描述输入字段预期值的提示信息(hint), 该提示会在输入字段为空时显示.高端浏览器支持此属性(ie10/11在获得焦点 ...
- PHP和CS的引用传值
PHP的引用传值 function change_value($num){ $num+=2; } $age = 3; change_value(&$age); echo $age; CS的引用 ...
- 十三、Android学习笔记_Andorid控件样式汇总
<!-- 设置activity为透明 --> <style name="translucent"> <item name="android: ...