北河以北

R 学习笔记(一)

文/宋春林

这是我在Coursera上参加的Computing for Data Analysis课程Week 1的学习笔记。

一、数据类型和基本操作

R语言基本原则:语句区分大小写;注释语句以#开头

五类最基本对象:character,numeric,integer,complex,logical,使用class()函数可以查看对象类型;Inf在R中是存在的数,1/0=Inf,1/Inf=0;NaN,即not a number;NAs意为无意义结果 <-为赋值运算符.

as.*可以把不同类型的变量转换为*的类型。

创建矩阵,dim()可以表示矩阵行列数。

列组合(cbind)和行组合(rbind)。

创建向量:v=c(1,3,5,7),vector里面的量必须是同类;列表(Lists)是一类可以包含不同类型对象的向量,用[[]]表示以示区别。

Factors被用来表示分类数据,可以有序或者无序。

创建数据框(data frame)。

有关丢失值(Missing values):is.na()用来检测NA;is.nan()用来检测NaN;NA值也有类,可能是字符变量、整型等;NaN值是NA值,反之则不然。

为R中的对象起名字。

提取子集:[ 用来提取与原始对象同类的对象,可以选择多个元素(有例外);[[ 可以用来提取列表(list)或者数据框(data frame)中的元素,只能用来提取单一对象;$ 可以以名称来提取列表(list)或者数据框(data frame)中的元素。

一些常用函数:获取某函数帮助:?functionname;安装软件包:install.packages(“packagename”);加载软件包:library(packagename);查看属性:attributes(对象名称)​​

​二、矢量化操作

​许多在R中的操作经矢量化以后,会使代码更加高效、精确、易读。例子: ​ ​

x <\- 1:4; y <\- 6:9 > x + y [1] 7 9 11 13 > x > 2 [1] FALSE FALSE TRUE TRUE > x >= 2 [1] FALSE TRUE TRUE TRUE > y == 8 [1] FALSE FALSE TRUE FALSE > x * y [1] 6 14 24 36 > x / y [1] 0.1666667 0.2857143 0.3750000 0.4444444​​ [/sourcecode] [sourcecode language="plain"]​​ ​​> x <\- matrix(1:4, 2, 2); y <\- matrix(rep(10, 4), 2, 2) > x * y ## 元素相乘 [,1] [,2] [1,] 10 30 [2,] 20 40 > x / y [,1] [,2] [1,] 0.1 0.3 [2,] 0.2 0.4 > x %*% y ## 真正的矩阵乘法 [,1] [,2] [1,] 40 40 [2,] 60 60​​ 

三、读写数据

将数据读入R的基本函数: read.table, read.csv, 用于读取表格式数据 readLines, 从文本中读取行 source,读取R代码文件(inverse of dump) dget, 读取R代码文件(inverse of dput) load, 从保存的工作空间中读取 unserialize, 为以二进制形式读取单一的R对象

也有类似的将数据写入文件的函数: write.table; writeLines; dump; dput; save; serialize;

read.table是最常用的读取数据的函数,它有几个重要的参数: file, 文件名称或者连接; header, 如果该文件有标题行,在逻辑上指出; sep, 一个字符串,指示如何对列分隔; colClasses, 指明数据集中的每列类型的特征向量; nrows, 数据集中的行数; comment.char, 表示注释字符的一个字符串; skip, 从开头跳过的行数; stringsAsFactors, 字符变量是否应该视为Factor?

由于R是调用电脑的RAM处理数据,所以一般来讲内存越大R崩溃的可能性就越小。如果事先知道对象类型,用colClasses指明对象类型会使R运行速度快两倍。如果数据集很大,最好事先估算需要的空间。例如,有一个1500行120列的数字型的数据框,需要的最小内存为:

\(1500000×120×8bytes/numeric=1440000000bytes=1440000000÷220bytes/MB=1373.29MB=1.34GB\)

用readLines从网页中读取数据。

​​用文本格式来存储数据非常好,它可编辑性、易修复、能够避免某些潜在的问题。

一些有用的函数:summary()可以用来给出函数的基本特征;str()函数非常有用,可以查看关于对象的属性、数据集预览。

没有弄懂的部分:dput-ting & Dumping R Objects

发表于
分类 学无止境  标签 R  统计学  Coursera