从零开始学习R语言(一)——数据结构之“向量”(Vector)
本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/59688569
也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/12537014.html
因为本学期选修了几门与统计有关的课,开始学习统计学中普遍使用的R语言。虽然之前学习过Pascal、C、Python等语言,但是初次接触R语言还是感觉跟其他的编程语言有本质的不同。R语言是数学家设计的编程语言,对于一些常见的数学操作和计算要比其他语言简单得多,因此也更适合用在高效的统计分析上。 我在这里了整理了向量、序列、因子、矩阵、数组、列表等R语言常见的操作,希望能对大家有所帮助~如有建议或批评,也欢迎大家到我的个人博客或知乎专栏评论,谢谢大家!
1. [一维]:向量(Vector)
1.1 创建一个向量(R语言中默认创建的是列向量,如需要行向量则需要转置)
max(a,b,c)
matrix()
length()
v <- c(4, 7, 23.5, 76.2) #创建一个向量v并对其赋值
v <- c(4,7,23.5,76.2,80,"rrt") #向量被污染,只要含有字符,则向量中的数字也将被转变成字符:v变为:"4" "7" "23.5" "76.2" "80" "rrt"
u <- c(4,6,NA,2) #NA表示空缺
k <- c(T,F,NA,TRUE) #TRUE、FALSE分别表示逻辑上的真、假
pH <- c(area1=4.5,area2=7,mud=7.3,dam=8.2,middle=6.3)
1.2 向量的基本操作
length(v) #求向量的长度
mode(v) #求向量的类型(若向量中全是数字,则返回numeric;若含有字母,则返回character;若含有TRUE、FALSE,则变为logical)
1.3 向量的索引(Index)
x <- c(0,-3,4,-1,45,90,-5)
x > 0 #输出:FALSE FALSE TRUE FALSE TRUE TRUE FALSE
x[x>0] #输出:4 45 90
x[x <= -2 | x > 5] #输出:-3 45 90 -5 提示:R语言中|是或(or)的意思
x[x > 40 & x < 100] #输出:45 90
x[c(4,6)] #输出:-1 90 提示:[]中为vector时可以索引多个元素
pH <- c(area1=4.5,area2=7,mud=7.3,dam=8.2,middle=6.3) #此时索引可以用名字来索引内容,如pH['mud]等,类似于python语言中的Dict(字典)
1.4 向量的加减乘除
当两个向量长度一致时,可对应位置直接加或减,如:
v1 <- c(4,6,87)
v2 <- c(34,32.5,12)
v1+v2 #结果:38.0 38.5 99.0
当两个向量长度不一致时(要求一个的长度必须是另一个倍数n),短的向量依次与长向量相加(或减)n次。
v1 <- c(4,6,8,10)
v2 <- c(10,2)
v1+v2 #结果:14 8 18 12
乘除、开方等操作会对向量中的每一个元素进行操作(同时适用于factor,matrix,array等)
v1 <- c(4,6,8,24)
2*v1 #结果:8 12 16 48
v <- c(4,7,23.5,76.2,80)
x <- sqrt(v)
x #结果:2.000000 2.645751 4.847680 8.729261 8.944272
1.5 序列(Sequence)
1.5.1 产生一个序列
直接用"min:max"产生一个[min, max]的序列,若min>max,则为倒序排列,但要注意括号的使用
还可以使用seq(from=XX,to=XX,length=XX)或者seq(from=1,to=5,by=1)的形式设置序列个数(长度)或者步长来生成序列。
1:1000 #1~1000的序列
5:0 #产生5 4 3 2 1 0
10:15-1 #9~14的序列
10:(15-1) #10~14的序列
seq(from=1,to=5,length=2) #1,5
seq(length=10,from=-2,by=1) #-2 -1 0 1 2 3 4 5 6 7
1.5.2 使用rep()重复产生序列
rep(5,10) #5重复10次:5 5 5 5 5 5 5 5 5
rep(1:3,3) #1 2 3 1 2 3 1 2 3
rep(1:2,each=3) #1:2分别重复3次:1 1 1 2 2 2
1.5.3 产生正态分布、t分布
rnorm(10) #产生10个标准正态分布序列
rnorm(4,mean=10,sd=3) #产生4个均值为10,标准差为3的正态分布序列
rt(5,df=10) #产生5个自由度df=10的t分布序列</pre>
从零开始学习R语言(一)——数据结构之“向量”(Vector)的更多相关文章
- 从零开始学习R语言(五)——数据结构之“列表(List)”
本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60141740 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125678 ...
- 从零开始学习R语言(四)——数据结构之“数组(Array)”
本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60141207 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125677 ...
- 从零开始学习R语言(三)——数据结构之“矩阵(Matrix)”
本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60140022 也同步更新于我的个人博客:https://www.nickwu.cn/blog/id=129 3. [二 ...
- 从零开始学习R语言(二)——数据结构之“因素(Factor)”
本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60101041 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125370 ...
- 从零开始学习R语言(八)——R语言绘图
本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/74051739 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125683 ...
- 从零开始系列-R语言基础学习笔记之二 数据结构(二)
在上一篇中我们一起学习了R语言的数据结构第一部分:向量.数组和矩阵,这次我们开始学习R语言的数据结构第二部分:数据框.因子和列表. 一.数据框 类似于二维数组,但不同的列可以有不同的数据类型(每一列内 ...
- 从零开始系列--R语言基础学习笔记之一 环境搭建
R是免费开源的软件,具有强大的数据处理和绘图等功能.下面是R开发环境的搭建过程. 一.点击网址 https://www.r-project.org/ ,进入"The R Project fo ...
- 手把手教你学习R语言
本文为带大家了解R语言以及分段式的步骤教程! 人们学习R语言时普遍存在缺乏系统学习方法的问题.学习者不知道从哪开始,如何进行,选择什么学习资源.虽然网络上有许多不错的免费学习资源,然而它们多过了头,反 ...
- R语言编程艺术# 数据类型向量(vector)
R语言最基本的数据类型-向量(vector) 1.插入向量元素,同一向量中的所有的元素必须是相同的模式(数据类型),如整型.数值型(浮点数).字符型(字符串).逻辑型.复数型等.查看变量的类型可以用t ...
随机推荐
- 吴裕雄--天生自然KITTEN编程:青蛙答题过河
- 神经网络的Python实现(一)了解神经网络
网络上深度学习相关博客教程质量参差不齐,很多细节很少有文章提到,所以本着夯实深度学习基础的想法写下此系列博文. 本文会从神经网络的概述.不同框架的公式推导和对应的基于numpy的Python代码实现等 ...
- 修改从Maven中心仓库下载到本地的jar包的默认存储位置及远程仓库
从Maven中心仓库下载到本地的jar包的默认存放在”${user.home}/.m2/repository”中,${user.home}表示当前登录系统的用户目录(如"C:\Users\g ...
- react-native start 启动错误解决方法
ERROR Error watching file for changes: EMFILE {"code":"EMFILE","errno" ...
- TableViewComponent v2
Unity UGUI 自带的 ScrollView 控件不支持复用滚动内容,在数量大的情况下,界面容易卡顿 借鉴其他游戏控件,写了个可复用的滚动组件,扩展.优化了ScrollView TableVie ...
- 启动tomcat报错 Unable to process Jar entry [module-info.class] from Jar...[xxx.xx.jar!\] for annotations
Java Web 项目tomcat启动报错module-info.class 从git 上面拉下的项目,运行报错. jdk.maven配置正常 tomcat启动遇见的问题: Unable to pro ...
- android逆向---charles抓包
手机与电脑处于同一网络环境,且正确设置代理后,charles显示CONNECT失败,提示信息SSL handshake with client failed: An unknown issue occ ...
- 利用机器学习检测HTTP恶意外连流量
本文通过使用机器学习算法来检测HTTP的恶意外连流量,算法通过学习恶意样本间的相似性将各个恶意家族的恶意流量聚类为不同的模板.并可以通过模板发现未知的恶意流量.实验显示算法有较好的检测率和泛化能力. ...
- 7-7 jmu_python_是否是数 (10 分)
本题要求从键盘输入一个字符串,判断该串是否属于整数.浮点数或者复数的表示 输入格式: 输入一个字符串 输出格式: 输出yes或no 输入样例: -299 输出样例: yes a = input() t ...
- Eureka 注册中心看这一篇就够了
服务注册中心是服务实现服务化管理的核心组件,类似于目录服务的作用,主要用来存储服务信息,譬如提供者 url 串.路由信息等.服务注册中心是微服务架构中最基础的设施之一. 在微服务架构流行之前,注册中心 ...