R语言系列之1------数据类型

Python011

R语言系列之1------数据类型,第1张

最近身体状况不太好的我,已经懒惰到不太想用脑子思考问题了,但也总不能什么事情都不做就这样蹉跎岁月吧,于是想着把自己之前的知识总结总结。今天就先把R语言的知识总结总结吧。

R语言是一个应用非常广泛的并且免费的用于统计计算和作图的计算机语言,无论什么和数据分析有关的行业,基本都会用到R。R 环境由一组数据操作,计算和图形展示的工具构成。它的特色在于:1.有效的数据处理和保存机制;2.完整的数组和矩阵计算操作符;3.连贯而又完整的数据分析工具;4.图形工具可以对数据直接进行分析和展示,同时可用于多种图形设备;5.它是一种相当完善,简洁而又高效的程序设计语言(也就是‘S’)。

基本的数据类型:

向量有一些基本运算:

求三角函数的值:sin(x),cos(x),tan(x)

向量开根号:sqrt(x)

求向量的和:sum(x)

向量的最大值和最小值:max(x) 和min(x)。

向量的范围:range (x)

向量的长度:length(x)

向量的均值:mean(x)

向量的方差:var(x)

向量的标准差:sd(x)

向量的累乘:prod(x)

数组可以看作是带有多个下标类型相同的元素集合,如数值型。

维度向量(dimension vector)是一个正整数向量。如果它的长度为k,那么该数组就是k-维的,例如矩阵是2-维数组。

数组只允许单一类型的值出现。

在R中数组用array()函数建立。

矩阵是一个2维的数组,一般用matrix()来构建一个矩阵,array()也可以创建一个2维数组(矩阵)。

例子:定义一个从1到20,行数为4,列数为5的矩阵。

向量的合并:

也可以用cbind()和rbind()函数将相同长度的向量接合成矩阵。

t()可以将矩阵进行转置,或用aperm()代替。

同样矩阵也可以做合并,同样是用rbind和cbind。

rbind和cbind,除能合并等长的向量外,还能合并数据框和矩阵。

矩阵工具:1).函数nrow(A) 和ncol(A) 将会分别返回矩阵A 的行数和列数.2).colnames(A)rownames(A)会分别返回矩阵A 的列名和行名。3).将一个数组强制转换成简单向量的标准方法是用函数as.vector(),或用c()。

因子(factor)是一个对等长的其他向量元素进行分类(分组)的向量对象。 R同时提供有序(ordered)和无序(unordered)因子。有序意味着以字母排序。

函数factor()引入因子。

函数levels()表示因子的水平。

有序因子:函数ordered() 用来创建有序因子。在其他方面,函数ordered() 和factor() 基本完全一样。大多数情况下,有序和无序因子的唯一差别在于前者显示的时候反应了各水平的顺序。

7.1. R 的列表(list)是一个以对象的有序集合构成的对象。列表中包含的对象又称为它的分量(components)。

7.2. 分量可以是不同的模式或类型,如一个列表可以同时包括数值向量,逻辑向量,矩阵,复向量,字符数组,函数等等。

7.3. 列表的建立采用list()函数,列表通过[[index/name]]进行访问。

8.1. 数据框(data frame)是一个属于“data.frame” 类的列表。

8.2. 数据框常常会被看作是一个由不同模式和属性的列构成的矩阵。它能以矩阵形式出现,行列可以通过矩阵的索引习惯访问。

8.3. 用data.frame()函数构建数据框。

程序设计语言,通常简称为编程语言,是一组用来定义计算机程序的语法规则。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。

程序设计语言原本是被设计成专门使用在计算机上的,但它们也可以用来定义算法或者数据结构。正是因为如此,程序员才会试图使程序代码更容易阅读。

设计语言往往使程序员能够比使用机器语言更准确地表达他们所想表达的目的。对那些从事计算机科学的人来说,懂得程序设计语言是十分重要的,因为在当今所有的计算都需要程序设计语言才能完成。

在过去的几十年间,大量的程序设计语言被发明、被取代、被修改或组合在一起。尽管人们多次试图创造一种通用的程序设计语言,却没有一次尝试是成功的。之所以有那么多种不同的编程语言存在的原因是,编写程序的初衷其实也各不相同;新手与老手之间技术的差距非常大,而有许多语言并对新手来说太难学;还有,不同程序之间的运行成本(runtime cost)各不相同。

有许多用于特殊用途的语言,只在特殊情况下使用。例如,PHP专门用来显示网页;Perl更适合文本处理;C语言被广泛用于操作系统和编译器的开发(所谓的系统编程)。

高级程序设计语言(也称高级语言)的出现使得计算机程序设计语言不再过度地倚赖某种特定的机器或环境。这是因为高级语言在不同的平台上会被编译成不同的机器语言,而不是直接被机器执行。最早出现的编程语言之一FORTRAN的一个主要目标,就是实现平台独立。

虽然大多数的语言可以既可被编译(compiled)又可被解译(interpreted),但大多数只在一种情况下能够良好运行。在一些编程系统中,程序要经过几个阶段的编译,一般而言,后阶段的编译往往更接近机器语言。这种常用的使用技巧最早在1960年代末用于BCPL,编译程序先编译一个叫做“0代码”的转换程序(representation),然后再使用虚拟器转换到可以运行于机器上的真实代码。这种成功的技巧之后又用于Pascal和P-code,以及Smalltalk和二进制码,虽然在很多时候,中间过渡的代码往往是解译,而不是编译的。

如果所使用的翻译的机制是将所要翻译的程序代码作为一个整体翻译,并之后运行内部格式,那么这个翻译过程就称为编译。因此,一个编译器是一个将可阅读的程序文本(叫做源代码)作为输入的数据,然后输出可执行文件(object code)。所输出的可执行文件可以是机器语言,由计算机的中央处理器直接运行,或者是某种模拟器的二进制代码。

如果程序代码是在运行时才即时翻译,那么这种翻译机制就被称作解译。经解译的程序运行速度往往比编译的程序慢,但往往更具灵活性,因为它们能够与执行环境互相作用。参见解译语言。

目录

1 特点

1.1 数据和数据结构

1.2 指令及流程控制

1.3 引用机制和重用

2 程序设计语言的历史

3 常见的程序设计语言

4 参见

特点

每一种程序设计语言可以被看作是一套包含语法、词汇和含义的正式规范。

这些规范通常包括:

数据和数据结构

指令及流程控制

引用机制和重用

设计哲学

大多数被广泛使用或经久不衰的语言,拥有负责标准化的组织,经常会晤来创造及发布该语言的正式定义,并讨论扩展或贯彻现有的定义。

数据和数据结构

现代计算机内部的数据都只以二元方式储存,即开-关模式(on-off)。现实世界中代表信息的各种数据,例如名字、银行账号、度量以及同样低端的二元数据,都经由程序设计语言整理,成为高端的概念。

一个程序中专门处理数据的那个系统被称为程序语言的型态系统(type system);对型态系统的研究和设计被称为型态理论(type theory)。语言可以被分为静态型态系统(statically typed systems),例如C++和Java,和动态型态系统(dynamically typed systems),例如Lisp,JavaScript,Tcl和Prolog。前者可被进一步分为包含宣告型态(manifest type)的语言,即每一个变量和函数的型态都清楚地宣告,或type-inferred语言(例如MUMPS,ML)。

大多数语言还能够在内置的型态基础上组合出复杂的数据结构型态(使用数组,列表,堆栈,文件等等)。面向对象语言(Object Oriented Language,又译作“物件导向语言”)允许程序员定义新的数据型态,即“对象”或“物件”(objects),以及运行于该对象的函数(functions)和方法(methods)。

除了何时以及如何确定表达式和型态的联系,另外一个重要的问题就是语言到底定义了哪些型态,以及允许哪些型态作为表达式的值。诸如C编程语言之类的低端语言允许程序命名内存位置、内存区域以及编译时的常量;ANSI C甚至允许表达式返回结构值(struct values)。功能性的语言一般允许变量直接使用运行时计算出的值,而不是指出该值可能储存的内存地址。

指令及流程控制

一旦数据被确定,机器必须被告知如何对这些数据进行处理。较简单的指令可以使用关键字或定义好的语法结构来完成。不同的语言利用序列系统来取得或组合这些语句。除此之外,一个语言中的其他指令也可以用来控制处理的过程(例如分支、循环等)。

引用机制和重用

引用的中心思想是必须有一种间接设计储存空间的方法。最常见的方法是通过命名变量。根据不同的语言,进一步的引用可以包括指向其他储存空间的指针。还有一种类似的方法就是命名一组指令。大多数程序设计语言使用宏调用、过程调用或函数调用。使用这些代替的名字能让程序更灵活,并更具重用性。

程序设计语言的历史

二十世纪四十年代当计算机刚刚问世的时候,程序员必须手动控制计算机。当时的计算机十分昂贵,唯一想到利用程序设计语言来解决问题的人是德国工程师楚泽(Konrad Zuse)。

几十年后,计算机的价格大幅度下跌,而计算机程序也越来越复杂。也就是说,开发时间已经远比运行时间来得宝贵。

于是,新的集成、可视的开发环境越来越流行。它们减少了所付出的时间、金钱(以及脑细胞)。只要轻敲几个键,一整段代码就可以使用了。这也得益于可以重用的程序代码库。

常见的程序设计语言

ActionScript

APL、A+和J

Ada

汇编语言

AWK

Basic、Fortran

VBScript

Brainfuck

C、C++

C#

Clipper

COBOL

dBase

PASCAL、Delphi

Forth

FoxPro

F#

Fava

IDL

Java

JavaScript

J#

LISP

Lua

LOGO

Modula

Nuva

Perl

PHP

PL/I

Prolog

Python

R

Ruby

Scheme

Smalltalk

SQL

Tcl/Tk

Visual Basic

Visual FoxPro

XML

[编辑] 参见

计算机科学课程列表

程序设计语言列表

编译器

Hello World程序

脚本语言

维基程序员

程序设计语言编辑

工业编程语言: A+ | Ada | 汇编语言 | Basic | Brainfuck | C语言 | C++ | C++/CLI | Cg | COBOL | Eiffel | Erlang | FORTRAN |Fuxi| IronPython | Java | JRuby | Jython | LISP | Lua | Nuva | Oberon | Objective-C | Ocaml | Pascal | Perl | Powerbuilder | Python | QBASIC | R语言 | REXX | Ruby | Self | Smalltalk | SQL | Tcl语言 | Visual Basic | PHP | Lua | C# | F# | J# | Visual Basic .NET| 机器语言

脚本编程语言: ActionScript | JavaScript | JScript | Nuva | PostScript | VBScript

学术编程语言: APL/J | Haskell | Logo | ML | Prolog | Scheme | SAC

其他编程语言: ALGOL | BASIC | Clipper | Forth | Fuxi|Modula-2/Modula-3 | MUMPS | PL/I | Simula

取自https://secure.wikimedia.org/wikipedia/zh/w/index.php?title=%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E8%AF%AD%E8%A8%80&variant=zh-cn [经过修改】

页面分类: 程序设计语言 | 人工语言

程序设计语言

programming language

用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。程序设计语言有3个方面的因素,即语法、语义和语用。语法表示程序的结构或形式,亦即表示构成语言的各个记号之间的组合规律,但不涉及这些记号的特定含义,也不涉及使用者。语义表示程序的含义,亦即表示按照各种方法所表示的各个记号的特定含义,但不涉及使用者。语用表示程序与使用者的关系。

基本成分 语言的种类千差万别。但是,一般说来,基本成分不外4种。①数据成分。用以描述程序中所涉及的数据。②运算成分。用以描述程序中所包含的运算。③控制成分。用以表达程序中的控制构造。④传输成分。用以表达程序中数据的传输。

分类 按语言级别,有低级语言和高级语言之分。低级语言包括字位码、机器语言和汇编语言。它的特点是与特定的机器有关,功效高,但使用复杂、繁琐、费时、易出差错。其中,字位码是计算机唯一可直接理解的语言,但由于它是一连串的字位,复杂、繁琐、冗长,几乎无人直接使用。机器语言是表示成数码形式的机器基本指令集,或者是操作码经过符号化的基本指令集。汇编语言是机器语言中地址部分符号化的结果,或进一步包括宏构造。

高级语言的表示方法要比低级语言更接近于待解问题的表示方法,其特点是在一定程度上与具体机器无关,易学、易用、易维护。当高级语言程序翻译成相应的低级语言程序时,一般说来,一个高级语言程序单位要对应多条机器指令,相应的编译程序所产生的目标程序往往功效较低。

按照用户要求,有过程式语言和非过程式语言之分。过程式语言的主要特征是,用户可以指明一列可顺序执行的运算,以表示相应的计算过程。例如,FORTRAN,COBOL,ALGOL60等都是过程式语言。非过程式语言的含义是相对的,凡是用户无法指明表示计算过程的一列可顺序执行的运算的语言,都是非过程式语言。著名的例子是表格的生成程序(RPG)。它实质上不是语言,使用者只须指明输入和预期的输出,无须指明为了得到输出所需的过程。

按照应用范围,有通用语言和专用语言之分。目标非单一的语言称为通用语言,例如FORTRAN、COBOL、ALGOL60等都是通用语言。目标单一的语言称为专用语言,如APT等。

按照使用方式,有交互式语言和非交互式语言之分。具有反映人�机交互作用的语言成分的称为交互式语言,如BASIC语言就是交互式语言。语言成分不反映人-机交互作用的称非交互式语言,如FORTRAN、COBOL、ALGOL60、PASCAL等都是非交互式语言。

按照成分性质,有顺序语言、并发语言和分布语言之分。只含顺序成分的语言称为顺序语言,如FORTRAN、COBOL等都属顺序语言。含有并发成分的语言称为并发语言,如并发PASCAL、MODULA和ADA等都属并发语言。考虑到分布计算要求的语言称为分布语言,如MODULA*便属分布语言。

传统的程序设计语言大都以诺伊曼式的计算机为设计背景,因而又称为诺伊曼式语言。J.巴克斯于1977年提出的函数式语言,则以非诺伊曼式的计算机为设计背景,因而又称为非诺伊曼式语言。

主要语言 ① APT( Automatically Pro-grammed Tools)——自动数控程序。第一个专用语言,用于数控机床加工,1956。

②FORTRAN(FORmula TRANslation)——公式翻译程序设计语言。第一个广泛使用的高级语言,为广大科学和工程技术人员使用计算机创造了条件,1956。

③ FLOW-MATIC 。第一个适用于商用数据处理的语言,其语法与英语语法类似,1956。

④IPL-V(Information Processing Language V)——信息处理语言。第一个表处理语言,可看成是一种适用于表处理的假想计算机上的汇编语言,1958。

⑤ COMIT(COmpiler Massachusetts Institute foTechnology) —— 马萨诸塞州理工学院编译程序。第一个现实的串处理和模式匹配语言,1957。

⑥COBOL(COmmon Business Oriented Language)——面向商业的通用语言。使用最广泛的商用语言,它是适用于数据处理的高级程序设计语言,1960。

⑦ALGOL60(ALGOrithmic language60) ——算法语言60。程序设计语言由技艺转向科学的重要标志,其特点是局部性、动态性、递归性和严谨性,1960。

⑧LISP(LISt Proceessing——表处理语言。引进函数式程序设计概念和表处理设施,在人工智能的领域内广泛使用,1960。

⑨JOVIAL(Jules Own Version of IAL)——国际算法语言的朱尔斯文本。第一个具有处理科学计算、输入-输出逻辑信息、数据存储和处理等综合功能的语言。多数JOVIAL编译程序都是用JOVIAL书写的,1960。

⑩GPSS(General-purpose Systems Simulator)——通用系统模拟语言 。第一个使模拟成为实用工具的语言 ,1961。

�JOSS(Johnniac Open-Shop System ——。第一个交互式语言,它有很多方言,曾使分时成为实用,1964。

�FORMAC(FORmula MAnipulation Compiler)——公式翻译程序设计语言公式处理编译程序。第一个广泛用于需要形式代数处理的数学问题领域内的语言,1964。

�SIMULA (SIMUlation LAnguage)—— 模拟语言 。主要用于模拟的语言,是ALGOL60的扩充,1966。SIMULA67是1967年SIMULA的改进。其中引进的“类”概念,是现代程序设计语言中“模块”概念的先声。

�APL/360 (A Programming Language)——程序设计语言360。一种提供很多高级运算符的语言,可使程序人员写出甚为紧凑的程序 ,特别是涉及到矩阵计算的程序 ,1967。

� PASCAL ( Philips Automatic Sequence CALcul-ator)——菲利浦自动顺序计算机语言。在ALGOL60的基础上发展起来的重要语言 ,其最大特点是简明性与结构化,1971。

�PROLOG(PROgrammingin LOGic)。 一种处理逻辑问题的语言。它已经广泛应用于关系数据库、数理逻辑、抽象问题求解、自然语言理解等多种领域中,1973。

�ADA。一种现代模块化语言。属于ALGOLPASCAL语言族,但有较大变动。其主要特征是强类型化和模块化,便于实现个别编译,提供类属设施,提供异常处理,适于嵌入式应用,1979。

除了上面列举的语言外,还有一些较为通用的语言,特别是BASIC、PL/1、SNOBOL、ALGOL68等。BASIC虽然简单易学,使用广泛,但其中没有什么新概念,而且并不是第一个交互式语言。PL/1的设计 思想来源于JOVIAL,其功能来源于FORTRAN、COBOL、ALGOL60,具有中断表处理等设施。SNOBOL是一种好 的语言,对COMIT中若干概念做了明显的改进。ALGOL68在语言成分和 描述方法方面虽有所创新,但应用尚不广泛。

发展趋势 程序设计语言是软件的重要方面。它的发展趋势是模块化、简明性和形式化。①模块化。不仅语言具有模块成分,程序由模块组成,而且语言本身的结构也是模块化的。②简明性。涉及的基本概念不多,成分简单,结构清晰,易学易用。③形式化。发展合适的形式体系,以描述语言的语法、语义、语用。

编程语言一、C语言

C语言是世界上最流行、使用最广泛的高级程序设计语言之一。在操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。

C语言绘图能力强,具有可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。

编程语言二、java

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

编程语言三、c++

C++这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。 它是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。

编程语言四、php

PHP,是英文超文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

如果你也想学习编程,通过编程开发软件,可以通过第三方专业开发平台,来实现开发需求:厦门在乎科技-专注小程序、app、网站开发