R In Action|创建数据集

时间:2022-07-22
本文章向大家介绍R In Action|创建数据集,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

简单的介绍数据的对象类型及文件的读入,输出。

一、对象类型:

包括标量、向量、矩阵、数组、数据框和列表。

1)向量(vector):用于存储数值型、字符型或逻辑型数据的一维数组。函数c()用来创建向量:

示例如下:

a <- c(1:10) b <- c("A","B") d <- c(TRUE,FALSE)

注:单个向量中的数据必须拥有相同的类型或模式(数值型、字符型或逻辑型)。

2)矩阵:二维数组,每个元素都拥有相同的模式(数值型、字符型或逻辑型)。函数matrix创建矩阵:

myymatrix <- matrix(vector, nrow=number_of_rows, ncol=number_of_columns,byrow=logical_value, dimnames=list(char_vector_rownames, char_vector_colnames))

其中:vector包含了矩阵的元素, nrow和ncol用以指定行和列的维数, dimnames包含了可选的、以字符型向量表示的行名和列名。默认情况按列填充。

示例如下:

mymatrix <- matrix(1:4, nrow=2, ncol=2, byrow=FALSE,dimnames=list(c("R1","R2"),c("C1","C2")))   C1 C2R1  1  3R2  2  4

3)数组(array):与矩阵类似,维度可以大于2。array函数创建:

myarray <- array(vector, dimensions, dimnames)

其中:vector包含了数组中的数据,dimensions是一个数值型向量,给出了各个维度下标的最大值,而dimnames是可选的、各维度名称标签的列表

示例如下:

myarray <- array(1:24, c(2, 3, 4), dimnames=list(c("A1", "A2"), c("B1", "B2", "B3"), c("C1", "C2", "C3", "C4")))

4)数据框(data.frame):不同的列可以包含不同模式(数值型、字符型等)的数据,很重要!data.frame()创建:

mydata <- data.frame(col1, col2, col3,…)

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

示例如下:

patientID <- c(1, 2, 3, 4)age <- c(25, 34, 28, 52)diabetes <- c("Type1", "Type2", "Type1", "Type1")status <- c("Poor", "Improved", "Excellent", "Poor")patientdata <- data.frame(patientID, age, diabetes, status)
patientID age diabetes    status1         1  25    Type1      Poor2         2  34    Type2  Improved3         3  28    Type1 Excellent4         4  52    Type1      Poor

是不是和EXCEL内容很像,所以重要啊!

5)因子(factor):类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor),绘图时候重要。

6)列表(list)是R的数据类型中最为复杂的一种。一般来说,列表就是一些对象(或成分,component)的有序集合。列表允许你整合若干(可能无关的)对象到单个对象名下。函数list()创建:

mylist <- list(object1, object2, …)

示例如下:

g <- "My First List"h <- c(25, 26, 18, 39)j <- matrix(1:10, nrow=5)k <- c("one", "two", "three")mylist <- list(title=g, ages=h, j, k)

二、数据下标

注:第一个元素下标从1开始!

1)向量:a[2];d[1]

2)矩阵:使用下标和方括号来选择矩阵中的行、 列或元素。X[i,]指矩阵X中的第i 行,X[,j]指第j 列, X[i, j]指第i 行第j 个元素。选择多行或多列时,下标i 和j 可为数值型向量。

3)数组:从数组中选取元素的方式与矩阵相同

4)数据框:可以使用前述(如矩阵中的)下标记号,亦可直接指定列名。

patientdata$age && patientdata[,2] 一样的结果

另:在每个变量名前都键入一次patientdata$麻烦,可以走一些捷径。联合使用函数attach()和detach()或单独使用函数with()来简化代码;

示例如下:

attach(mtcars) #函数attach()可将数据框添加到R的搜索路径中summary(mpg)    #检查搜索路径中的数据框,以定位到这个变量plot(mpg, disp)detach(mtcars) #函数detach()将数据框从搜索路径中移除
with(mtcars, {nokeepstats <- summary(mpg)keepstats <<- summary(mpg) #使用特殊赋值符<<-替代标准赋值符(<-)即可,它可将对象保存到with()之外的全局环境中。})  #查看nokeepstats 和 keepstats 的区别:nokeepstatsError: object 'nokeepstats' not foundkeepstats   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.   10.40   15.43   19.20   20.09   22.80   33.90 

5)列表:双重方括号中指明代表某个成分的数字或名称来访问列表中的元素。

mylist[[2]]和mylist[["ages"]]均指那个含有四个元素的向量mylist[[2]][1] 25 26 18 39mylist[["ages"]][1] 25 26 18 39

三、数据读入与写入:

1)使用read.table()从带分隔符的文本文件中导入数据。

mydataframe <- read.table(file, header=logical_value,sep="delimiter", row.names="name")

注1:help(read.table):更多详情

注2:stringsAsFactors=FALSE,可禁止将字符型变量将转换为因子。

2)使用read.csv()导入csv(excel)数据。

3)write.table , write.csv 输出R结果到文件中.