1、R语言介绍

R和RStudio 是与计算机进行对话的两个工具

RStudio 是话筒

R是沟通所用的语言

R的由来:基于S语言,由新西兰奥克兰大学的Robert Gentleman和Ross Ihaka开发,因两位开发者名字首字母都是R,所以该语言命名为R。

怎样理解R

一种计算机语言

一种用于统计分析、绘图的操作环境

用户接口

R 语言特点

R 是一款开源、免费的软件,可以跨平台运行

R 提供了非常丰富的统计分析技术

有很多非常实用并包含最新技术的R包,而且更新速度非常快

R的绘图功能十分强大

软件界面:

配置文件,选择SDI单窗口

选择save进行直接保存修改,不需要更改路径

效果图:

R环境下的提示符:

2、R包的安装

下载包:

查看所有包的命名:

(.packages(all=T))

加载包命令:

没有任何提示表示结果正常

向量的长度=向量的个数

字符串向量,双引号 “ ”

c函数:拼接功能

同时下载两个包

install.packages(c("reshape2","dplyr"))

创建R对象

R语言区分大小写

对象sz

1:6数值

sz

连续赋值:

ls()函数调取所有对象

get()函数得到变量的数值

删除对象:

删除所有对象

rm(list=ls())

统计函数

sum()

sz+1:2

sz+1:4

元素方式运算

R使用元素执行方式运算的机制:匹配向量,独立操作每对元素

如果两个向量长度不等,R会在较短的向量上重复

以上这种行为在R中被称为向量循环,帮助R执行元素方式运算

矩阵乘法:当需要使用矩阵乘法时,需要做出专门的请求

计算向量的内积:sz%*%sz

计算向量的外积:sz%o%sz

转置:t()

计算矩阵的行列式:det()

sz*sz 平方运算

sz%*%sz  一行一列

sz%o%sz

c(2,5,6,8)%o%c(3,7)

项目一:

用sample()函数,抽取1:6的随机数,抽取两次

sample函数可以完成随机抽样处理,其基本形式为:

sample(x, size, replace= FALSE)

replace=False 表示不可放回抽样

用replicate()函数执行100次

replace=TRUE/replace=T可放回抽样

基于名称的传参和基于位置的传参

基于位置的传参必须严格按照位置顺序,否则出错

自定义函数------------调用函数

练习:重复执行10次郑色子,得到10个点数和

首先自定义函数,再调用函数

直接调用前面定义的函数

修改函数fix(函数名)

传参处理:

生成等差数列函数seq

seq(...)## Default S3 method:

seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)),

length.out= NULL, along.with =NULL, ...)

seq.int(from, to, by, length.out, along.with, ...)

seq_along(along.with)

seq_len(length.out)

输出9个

伴随向量:

生成步长为1的等差数列

乘方运算

绘制一个散点图:两个变量的关系

直方图

直方图的横纵坐标都是连续的,强调的是数值连续的变化规律,可以表示两个变量

> xx

[1] 1 2 3 3 3

> qplot(x)

qplot(x,binwidth=1)

当次数够多满足正态分布

zn qplot(zn,binwidth=1)

# 入样概率 prob控制概率

>zsz

function(sk){

skn

sum(skn)

}> zn qplot(zn,binwidth=1)

#添加入样概率,6点概率是其他点数概率的3倍

function(sk=1:6){

skn

sum(skn)

}

向量的循环:

> rep(1:3,times=3)

[1] 1 2 3 1 2 3 1 2 3

> rep(1:3,each=3)

[1] 1 1 1 2 2 2 3 3 3

> rep(1:3,times=c(1,3,2))

[1] 1 2 2 2 3 3

>

字符串连接函数paste

paste()

其中...表示一个或多个R可以被转化为字符型的对象;参数sep表示分隔符,默认为空格;

项目二-设计扑克牌模拟系统

要求:自动洗牌、发牌

任务一:创建一副牌。学会如何使用R的数据类型和数据结构。

任务二:编写发牌和洗牌的函数。学习从一个数据集中抽取想要的数值。

任务三:改变点数系统。学习在数据的内部改变数据的取值

任务四:管理扑克牌的状态。学习R的环境系统和作用域规则。

原子型向量

数据结构:数据结构是存储、组织数据的方式,是数据内部的构成方法。

原子型向量:R里面最简单的数据类型,是构成其他对象类型的基本元素。

原子型向量的特点:每个原子型向量都将一种类型的数据存储在一个一维向量中。

原子型向量的分类:

双整型:存储普通的数值型数据;

> x1x1

[1] 1 2 3 4 5 6

> is.vector(x1)

[1] TRUE>length(x1)

[1] 6

>typeof(x1)

[1] "double"

整型:存储整型的数据;

> intint

[1] -1 2 4

字符型:存储文本型数据;

逻辑型:用来存储TRUE和FALSE这两个布尔数据。

> logiclogic

[1] TRUE FALSE>typeof(logic)

[1] "logical"

复数型和原始类型:分别来存储复数和数据的原始字节。is.vector():查看某个对象是否为向量。

typeof():查看某个对象的数据类型

#练习:生成一个原子型向量,来存储同花顺的牌面

同一种花色的顺子,比如黑桃的 A 、 K 、 Q 、 J 、 10

R-属性

属性:附加给原子型向量的额外信息。

attributes():查看一个对象包含哪些属性信息。

原子向量最常见的三种属性:名称、维度和类。每种属性都有自己的辅助函数。

练习1:给骰子的每个点数命名,并查看。

命名向量:

> klkl

a b1 2

关于维度:dim()函数可以将一个原子型向量转换为一个n维数组。

> dim(sz)sz

[,1] [,2] [,3]

[1,] 1 3 5[2,] 2 4 6

>

练习2:将一个向量转换为矩阵,并查看数据排列方式。

dim(sz)

练习3:用matrix()函数创建矩阵。

3行2列

2行3列

练习4:用array()函数创建数组。

2行3列,4个切片

typeof():查看某个对象的数据类型

R--类

类:新的结构,新的格式。class():查看一个对象的类。

练习1:赋予向量以维度属性,观察其class属性的变化。

用属性系统表示更多的数据类型:日期时间与因子。

日期与时间:R用一个特殊的类来表示日期和时间数据。

POSIXct:一个被广泛用于表示日期与时间的框架。

R处理规则:R函数在显示该对象之前,会根据POSIXct标准将该时间转换为用户可以理解的字符串。

练习2:用Sys.time()函数查看当前系统时间,并查看该对象的类和类型。

>Sys.time()

[1] "2019-12-05 21:37:24 CST"

> nownow

[1] "2019-12-05 21:37:57 CST"

练习3:用unclass()函数移除对象的class属性。

>now

[1] "2019-12-05 21:37:57 CST"

> class(now)

[1] "POSIXct" "POSIXt"

>typeof(now)

[1] "double"

>unclass(now)

[1] 1575553078

> #练习:1970年1月1日零点之后的100万秒是哪一天?

> mil

> class(mil)mil

[1] "1970-01-12 21:46:40 CST"

R--因子

因子:存储分类信息。

R中因子生成机制:R会将向量中的值重新编码为一串整数值,再将编码的结果存储在一个整型向量中,

然后对其添加一个levels属性和一个class属性。其中levels属性包含显示因子值的一组标签。

练习1:用factor()函数创建一个因子。

练习2:用as.character()函数将一个因子强制转换为字符串。

问题:当在原子型向量中存储多种类型的数据会发生什么问题呢?

integer整型向量

> xbxb

[1] female male male female

Levels: female male> class(xb)

[1] "factor"

>typeof(xb)

[1] "integer"

>as.numeric(xb)

[1] 1 2 2 1

强制转换

R强制转换所遵循的规则:

如果一个原子型向量包含字符串,R会将该向量中的所有元素都转换成字符型。

如果一个原子型向量只包含逻辑型和数值型元素,R会将逻辑型全部转换成数值型。

原因:单一数据类型的好处:数据操作更加直接和高效;而且就变量而言,变量中每个值度量的都是相同的属性,

因此没有必要使用不同的数据类型。

NA表示缺失值

> mnmn

[1] "男" "男" "女"

> sum(mn=="男")

[1] 2

> sum(mn=="女")

[1] 1

> sum(mn=="男")/sum(mn)

Errorin sum(mn) : ‘type‘(character)参数不对> sum(mn=="男")/sum(mn!="")

[1] 0.6666667

> sum(mn=="男")/length(mn)

[1] 0.6666667

> sum(mn=="男")/sum(c(mn=="男",mn=="女"))

[1] 0.6666667

> mean(mn=="男")

[1] 0.6666667

列表

列表:将数据组织在一个一维集合中。与原子型向量的区别在于,列表并不是将某些具体的值组织起来,而是组织R对象。

练习:用list()函数创建一个列表

[[]]:表示来自列表的哪一个元素。

双索引系统:因为列表的元素可以是任意一种R对象。

列表的特点:R中全能型的存储工具。

下面最外层的list有三个元素

命名:

二维表

> data.frame(姓名=c("张三","李四"),成绩=c(100,90))

姓名 成绩1 张三 100

2 李四 90

数据框

数据框:列表的二维版本。将向量组织在一个二维表格中,每一个向量作为这个表格一列。

需要注意的问题:

不同的列可以包含不同的数据类型;

每一列必须具有相同的长度;

每个向量都有自己的名称;

stringsAsFactors参数应设置为FALSE。

练习:用data.frame()函数创建一副牌。

> data.frame(姓名=c("张三","李四"),成绩=c(100,90))->df>df

姓名 成绩1 张三 100

2 李四 90

>typeof(df)

[1] "list"

stringsAsFactors=F

> data.frame(姓名=c("张三","李四"),成绩=c(100,90),stringsAsFactors=F)->df>df

姓名 成绩1 张三 100

2 李四 90

>str(df)‘data.frame‘: 2 obs. of 2variables:

$ 姓名: chr"张三" "李四"$ 成绩: num100 90

RStudio设置

#项目二-构建一副扑克牌

pkp

hs=rep(c("红桃","黑桃","梅花","方块"),each=13),

ds=rep(1:13,times=4),

stringsAsFactors= F)

str(pkp)#查看pkp的前六条数据

head(pkp)

#查看pkp的前八条数据

head(pkp,n=8)#查看pkp的后六条数据

tail(pkp)

#查看当前的工作目录

getwd()#设置工作目录

setwd("C:\Users\Desktop\DT")#写入外部文件

write.csv(pkp,file = "puke.csv",row.names = F)

#小结#第一个角度:从数据类型的角度#数据类型相同的,向量、矩阵、数组#数据类型不同的:列表、数据框

#第二个角度#一维结构:向量、矩阵#二维结构:矩阵、数据框#三维或三维以上结构:数组

选中要运行的代码,执行运行

#必知必会的函数#whichwhich.max()which.min()

#which:返回一个逻辑向量里面真值所在位置

which(c(T,F,T))

man

which(man=="男")#which.max():返回一个向量里面最大值所在位置

which.max(c(3,4,7))#which.min():返回一个向量里面最大值所在位置

which.min(c(3,4,7))#排序#第一种:直接排序

x

sort(x)

x

sort(x,decreasing =T)#第二种:间接排序

order(x)#第三种:倒着排

rev(x)

r语言调用dll出现错误载入表里没有c字符名,R语言(示例代码)相关推荐

  1. c 编译易语言dll文件,易语言调用DLL的问题(付dll文件,VC++编译的)

    AA直译器v1.02.rar (795.15 KB, 下载次数: 143) 2012-11-27 17:23 上传 点击文件名下载附件 dll说明: CE自动汇编直译器: AA引擎 各语言通用DLL ...

  2. c语言调用dll实例 结构体传参,Matlab调用Dll,对于自定义结构体数组如何传参? - 程序语言 - 小木虫 - 学术 科研 互动社区...

    %[例子1] % Matlab调用DLL,整形数组传参 v = [1,22,33;44,-56,67]; pv = libpointer('int16Ptr',v); m = get(pv,'Valu ...

  3. 关于C语言逻辑值的说法错误的是( ),2017年计算机二级c语言题库及答案

    2017年计算机二级c语言题库及答案 [选择题] 1). 关于C语言的变量,以下叙述中错误的是( ) A.所谓变量是指在程序运行过程中其值可以被改变的量 B.变量所占的存储单元地址可以随时改变 C.程 ...

  4. python调用dll出现错误总结如下(持续更新)

    1.出现如下错误:FileNotFoundError: Could not find module  (or one of its dependencies). Try using the full ...

  5. 易语言子程序公开c语言,易语言调用DLL未公开的子程序

    .版本 2 .支持库 spec .程序集 程序集1 .子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行 .局部变量 hMod, 整数型 .局部变量 pBase, 整数型 .局部变量  ...

  6. c语言调用dll实例 结构体传参,C# 调用Dll 传递字符串指针参(转)

    java -日期处理 1. 计算某年某月份 总有多少个周,每周的开始和结束时间? 思路:1.计算出本月实际的总天数 2.循环每一天,判断这天是否是 周日(1),如果是,周数加1,再次判断是否是月的第一 ...

  7. c语言中哪个是错误的常量,以下所列的C语言常量中,错误的是__________ 。

    摘要: 焊接时间过短,下语会造成虚焊和假焊现象常量错误声明变量的含义是通知编译系统为变量分配合适大小的存储空间.下语SMT印刷机可分为( )三个档次... 焊接时间过短,下语会造成虚焊和假焊现象 所列 ...

  8. 学生考勤日期链表排序c语言,【C项目】 文件,结构体,链表,排序, 学生信息管理系统(示例代码)...

    1.密码登录: 2.通过键盘输入学生信息,包括学生学号.姓名.成绩: 3.将输入的信息保存到指定文件中: 4.从文件中读取学生信息: 5.显示全部学生信息: 6.按学生总分进行降序排序: 7.删除学生 ...

  9. 二维离散变换由c语言编写,C++实现离散余弦变换(参数为二维指针)(示例代码)...

    http://www.cnblogs.com/scut-linmaojiang/p/5013590.html 写在前面 到目前为止已经阅读了相当一部分的网格水印等方面的论文了,但是论文的实现进度还没有 ...

最新文章

  1. 178页,四年图神经网络研究精华汇总
  2. Winform中设置ZedGraph当前所有曲线的颜色
  3. ASP.NET MVC:通过 FileResult 向 浏览器 发送文件
  4. NeurIPS 2021 | 港中文周博磊组:基于实例判别的数据高效生成模型
  5. C语言-实现矩阵的转置-随机函数产生随机数并赋予数组中-190222
  6. pdo插入mysql数据出错_php中通过pdo插入数据时,sql语句错误?
  7. 贪心算法——洛谷(P1803)
  8. Python 3.8实现支持断点续传的网络文件下载功能
  9. 2013-2-19 Android之ActionBar学习(转)
  10. Linux/Unix系统下nginx+php安装简明教程
  11. CSDN资源下载积分规则
  12. Windows工具 - 查看apk信息 - 包名/支持Android版本/支持架构等
  13. WAP PUSH的SMS PDU解析
  14. gif透明背景动画_汉服美女表情包(PS做GIF动图简易教程分享)
  15. 功能测试用例设计方法分享
  16. 人工智能python编程训练营_贪心科技 人工智能 Python 编程特训营 第四个主题项目代码...
  17. Flink1.13 DataStream API - Event Time - Generating Watermarks
  18. 深圳科目二辅城坳 考试心得
  19. 条件格式实现ABC分析
  20. 2021年电子设计大赛预测--球形机器人设计方案

热门文章

  1. ACL 2021 | 复旦大学邱锡鹏组:面向不同NER子任务的统一生成框架
  2. 重磅推荐 | 11个名企NLP项目,硅谷科学家帮你转型
  3. 《模式识别导论》特性选择与特征提取概要
  4. python list(str(x:str)) -> List
  5. joc杂志影响因子2019_边缘计算 | SCI期刊JoCCASA诚邀专刊稿件
  6. mvc中ajax的跳转,springmvc ajax 跳转的学习笔记
  7. protobuf windows java_protobuf windows java 环境搭建
  8. oracle asm和文件系统,Oracle工具之--ASM与文件系统及跨网络传输文件
  9. 【JVM调优工具篇】jvisualvm工具导出dump文件教程
  10. 牛客题霸 NC23 划分链表