【R语言】--- 各类数据的导入

Python020

【R语言】--- 各类数据的导入,第1张

通常情况下,我们会在excel中对数据进行预处理,然后将处理好的数据导入R中进行分析、作图。但随着数据源和数据格式的多样化,将多种数据源和数据格式导入R中进行分析、作图显得尤为必要,因为这对于数据分析、作图是最基础的。

R可导入键盘(利用键盘输入)、文本文件、excel、access、spss、sas等各类数据格式。

利用R中的edit()函数手动输入数据的文本编辑器:

(1)创建一个空数据框(或矩阵),其中变量名和变量的模式需与理想中的最终数据集一致;

(2)针对这个数据对象调用文本编辑器,输入你的数据,并将结果保存回此数据对象中。

函数edit()事实上是在对象的一个副本上进行操作的。若不将其赋值到一个目标,则所有修改将会全部丢失!

用read.table()从带分隔符的文本文件中导入数据。此函数可读入一个表格格式的文件并将其保存为一个数据框。

参数sep允许你导入那些使用逗号以外的符号来分隔行内数据的文件。你可以使用sep="\t"读取以制表符分隔的文件。此参数的默认值为sep="",即表示分隔符可为一个或多个空格、制表符、换行符或回车符。

我习惯用readxl包的read_excel()函数进行导入:

SPSS数据集可以通过foreign包中的函数read.spss()导入到R中,也可以使用Hmisc包中的spss.get()函数。

use.value.labels=TRUE表示让函数将带有值标签的变量导入为R中水平对应相同的因子。

R中设计了若干用来导入SAS数据集的函数,包括foreign包中的read.ssd()和Hmisc包中的sas.get()。这里我们使用sas7bdat包的read.sas7bdat()函数进行导入sas数据。

Robert I. Kabacoff (著). R语言实战(高涛/肖楠/陈钢 译). 北京: 人民邮电出版社.

创建向量时,先给向量命名,如letters,名字后加“<-符号,接着写函数c(元素)”,如“letters <- c(a,b,c,2,5)”。输入"<-"的方法:同时按“alt和-”或先按"<"再按"-"。

向量只有一行,向量里元素的数据类型操作:class(向量名称[第几列]),如下:

给数据框的各列及各行命名,输入函数c(元素为数字直接输入,每个元素之间用逗号隔开,英文单词要加引号,再用逗号分开),按要求输入数据框的函数后,记得要输入数据框如resualtdata,才能在结果中把数据框的各行各列内容显示出来。

对数据框的各行和各列进的名称修改时,方法:rownames(数据框名字)<-(各列名之间要用引号,列名之间用逗号隔开),colnames(数据框名字)<-(各行名之间要用引号,行名之间用逗号隔开),最后再把数据框名字写上后运行。

第一种方法,class(数据框名称[,第几列]),第几行的数字是空白的;同理,确定数据框中各行的数据类型,class(数据框名称[第几行,]),第几列的数字是空白的。第二种方法,class(数据框名称$第几列的名称),如下。

or

方法1:数据框名称 [第几行,第几列];

方法2:数据框名称["第几行对应的名称","第几列对应的名称"],此方法相应的行名和列名一定要加双引号,否者运行是错误的。

4行6列:矩阵名称<-matrix(1:24,nrow=4,ncol=6)

5行4列:矩阵名称<-matrix(1:20,nrow=5,ncol=4)

参考在数据框中更改各行各列命名的方法,注意的是,输入命名的函数后,运行不要从原始矩阵函数开始,不然会一直默认,应从矩阵名称开始,或者输入更改各行和各列的函数后,再输入矩阵名称,之后运行即可。

参考数据框的方法,同样也要注意在使用X["D3","E2"]方法时,一定要给具体的行和列的名称加引号。

在使用R语言时,输入的字母,符号一定是用英文版,当命令发生错误时,要仔细核对,是不是格式出现错误,显示不出结果时,输入相应的函数后,是不是没有输入数据框或矩阵。

将作业写至邮件 [email protected] ,抄送 [email protected]

数据框(data.frame)是R中最常处理的数据结构。

函数:data.frame(col1,col2,col3,....,row.name=NULL, check.rows = FALSE, check.names=TRUE, stringsAsFactors = default.stringsAsFactors())

其中的列向量col1, col2, col3,...可为任何类型(如字符型、数值型或逻辑型),每一列的名称可由函数names指定;

row.name用于指定各行(样本)的名称,默认没有名称,使用从1开始自增的序列来标识每一行;

check.rows用于用来检查行的名称和数量是否一致,默认为FALSE;

check.names来检查变量(列)的名称是否唯一且符合语法,默认为TRUE;

stringsAsFactors用来描述是否将字符型向量自动转换为因子,默认转换,若不改变的话使用stringsAsFactors = FALSE来指定即可。

每一列数据的模式必须唯一,不过你却可以将多个模式的不同列放到一起组成数据框。

先构建向量,再组成数据框。

直接用data.frame函数构建数据框。

R语言的下标索引是从1开始的,且下标索引为负数的话表示删除某个元素。

[] 可进行索引,括号内对应的是[行下标, 列下标]。

[1] 1 2 3 4 5 6 7 8

[1] "four"

[1] 1 2 3 4 5 6 7 8

[1] "four"

[1] 1 2 3 4 5 6 7 8

[1] "one" "two" "three"

attach、detach和with()

函数attach()可将数据框添加到R的搜索路径中。

函数detach()将数据框从搜索路径中移除。

函数attach()和detach()最好在你分析一个单独的数据框,并且不太可能有多个同名对象时使用。

with()就是把所有操作都限制在数据框上。

The following objects are masked by .GlobalEnv:

[1] 1 2 3 4 5 6 7 8

[1] "n1" "n2" "n3" "n4" "n5" "n6" "n7" "n8"

[1] 8

[1] 3

[1] 8

[1] "name""values" "values2"

[1] "r1" "r2" "r3" "r4" "r5" "r6" "r7" "r8"

[1] 8 3

[1] "data.frame"

[1] "numeric"

[1] "character"

Length:8 Min. :1.00 Min. :1.00

Class :character 1st Qu.:2.75 1st Qu.:2.75

Mode :character Median :4.50 Median :4.50

Mean :4.50 Mean :4.50

3rd Qu.:6.25 3rd Qu.:6.25

Max. :8.00 Max. :8.00

[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE