数据分析基础|R语言(数据集的创建)

简介: 数据分析R语言的基础操作。
+关注继续查看

创建数据集

进行数据操作的第一步就是创建数据集,也就是我们通常认知中的输入数据的操作。数据集通常是由数据构成的一个矩形数组,用行来表示观测,用列来表示变量。

数据结构

R语言中有许多用于存储数据的对象类型:标量、向量、矩阵、数组、数据框、列表等。

下面来展示一下上述数据类型的输入形式:

创建标量:

标量指的是直含有一个元素的向量。

a <- 1
b <- "one"
c <- TRUE

image.gif

创建向量:

R语言中用函数c()来创建向量的输入,向量输入的类型可以包含数值型、字符型(需要加引号)、布尔型(注意TRUE/FALSE都需要大写)

Vector_number <- c(1,2,3,4,5)
Vector_str <- c("one","two","three")
Vector_bool <- c(TRUE,FALSE,TRUE,TRUE)

image.gif

对于数值序列可以采用下面的方法来建立一个向量(例如生成1,2,3,4,5):

Vector <- c(1:5)

image.gif

如果想要查看某个向量我们只需要输入某个向量的名称即可,若要查看某一项可以使用Vector[c(1,3)]的形式用于查看第一、三项([1]开头的行是输出结果):

> Vector_str[c(1,3)]
[1] "one"   "three"
> Vector_str
[1] "one"   "two"   "three"
> Vector_number
[1] 1 2 3 4 5
> Vector_bool
[1]  TRUE FALSE  TRUE  TRUE

image.gif

创建矩阵:

创建矩阵的一般使用格式如下:

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

image.gif

其中vector包含了矩阵的元素,nrow和ncol用以制定行和列的维数,dimnames包含了可选的以字符型向量表示的行名和列名,选项byrow表明了矩阵应当按行填充(byrow=TRUE)还是按列填充(byrow=FALSE),默认按列填充。

Matrix <- matrix(1:20,nrow=4,ncol=5)
Mymatrix1 <- matrix(1:4,nrow=2,ncol=2,byrow=TRUE,dimname=list(c("r1","r2"),c("c1","c2")))
Mymatrix2 <- matrix(1:4,nrow=2,ncol=2,byrow=FALSE,dimname=list(c("r1","r2"),c("c1","c2")))

image.gif

输出矩阵:

> Matrix
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    5    9   13   17
[2,]    2    6   10   14   18
[3,]    3    7   11   15   19
[4,]    4    8   12   16   20
> Mymatrix1
   c1 c2
r1  1  2
r2  3  4
> Mymatrix2
   c1 c2
r1  1  3
r2  2  4

image.gif

创建数组:

数组的输入形式和矩阵是类似的,但是数组支持了更高维度的数据,数组的一般表示形式如下:

array <- array(vector,dimensions,dimnames)

image.gif

其中Vector是数组中的数据,dimensions是一个数值型向量,给出了各个维度下标的最大值,dimnames和在矩阵中的用法相同,实例如下:

Array <- array(1:18,c(3,2,3),dimnames=list(dim1,dim2,dim3))

image.gif

输出如下:

> Array
, , C1
   B1 B2
A1  1  4
A2  2  5
A3  3  6
, , C2
   B1 B2
A1  7 10
A2  8 11
A3  9 12
, , C3
   B1 B2
A1 13 16
A2 14 17
A3 15 18

image.gif

创建数据框:

由于不同的列可以包含不同的数据类型,数据框也就被应用的更加广泛,给出创建数据框的一般形式:

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

image.gif

列向量中可以包含任何的数据类型,实例如下:

ID <- c(1,2,3,4)
name <- c("James","Durant","Curry","Harden")
number <- c(23,35,30,13)
patientdata <- data.frame(ID,name,number)

image.gif

输出如下:

> patientdata
  ID   name number
1  1  James     23
2  2 Durant     35
3  3  Curry     30
4  4 Harden     13

image.gif

选取数据框中的元素:

> patientdata
  ID   name number
1  1  James     23
2  2 Durant     35
3  3  Curry     30
4  4 Harden     13
> patientdata[1:2]
  ID   name
1  1  James
2  2 Durant
3  3  Curry
4  4 Harden
> patientdata[c("name","number")]
    name number
1  James     23
2 Durant     35
3  Curry     30
4 Harden     13
> patientdata$name
[1] James  Durant Curry  Harden
Levels: Curry Durant Harden James

image.gif

$用来选取一个给定数据框中的某个特定变量。

创建列表:

列表(list)是R语言数据类型中最复杂的一种,通俗的说列表就是一些对象(或成分component)的有序集合,在创建矩阵和数组时,我们输入dimnames属性时已经用到了列表,下面通过实例来展示一下列表的操作。

> 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)
> mylist
$title
[1] "My First List"
$ages
[1] 25 26 18 39
[[3]]
     [,1] [,2]
[1,]    1    6
[2,]    2    7
[3,]    3    8
[4,]    4    9
[5,]    5   10
[[4]]
[1] "one"   "two"   "three"

image.gif

数据的输入

键盘输入数据:

在R中edit()函数会调用出一个允许手动输入数据的文本编辑器,步骤如下:

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

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

实例如下(执行edit()函数后会出现下面所示的数据编辑器):

> mydata <- data.frame(age=numeric(0),gender=character(0),weight=numeric(0))
> edit(mydata)

image.gif

其中语句edit(mydata)可以等价于fix(mydata)。

image.png

从带分隔符的文本文件导入数据:

我们可以使用函数read.table()从带分隔符的文本文件中导入数据,语法如下:

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

image.gif

其中file是一个带分隔符的ASCII文本文件,header是一个表明首行是否包含了变量名的逻辑值(TRUE/FALSE),sep是用来指定分隔数据的分隔符,row.name是一个可选参数,用以指定一个或多个表示行标识符的变量。实例如下:

grades <- read.table("studentgrades.csv",header=TRUEsep=",",row.names="STUDENTID")

image.gif

导入Excel数据:

导入Excel数据的一种方法是,将其导出为一个逗号分隔符的文件(csv),并使用上一节中提到的方法将其导入R中。

还有一种方法需要我们来使用工具包进行导入:

install.packages("RODBC")
library(RODBC)
channel <- odbcConnectExcel("myfile.xls")
mydataframe <- sqlFetch(channel,"mysheet")
odbcClose(channel)

image.gif

这里的myfile.xls就是一个Excel文件,mysheet是要从这个工作簿中读取工作表的名称,channel是一个由odbcConnectExcel()连接的对象,mydataframe是返回的数据框。

以上就是对一些基本的数据进行输入的过程,后续会继续更新其他数据的导入方式。

相关文章
|
1月前
|
数据挖掘
r语言数据分析画数据相关性图热力图
r语言数据分析画数据相关性图热力图
27 1
|
4月前
|
存储 数据挖掘 数据处理
R语言之处理大型数据集的策略
R语言之处理大型数据集的策略
75 4
|
5月前
|
数据挖掘
【数据分析】大型ADCP数据集的处理和分析(Matlab代码实现)
【数据分析】大型ADCP数据集的处理和分析(Matlab代码实现)
|
6月前
|
机器学习/深度学习 移动开发 数据挖掘
R语言- data.table包加速大型数据集的加载和运算效率用法示例
本文根据个人使用经验和博客参考,总结分享了在R语言中使用data.table包来提升大型数据集处理效率的用法示例,以供参考
112 0
|
7月前
|
数据可视化 数据挖掘 Python
跟着Nature Biotechnology学作图:R语言ComplexHeatmap包做热图展示TCGA-BRCA数据集概况
跟着Nature Biotechnology学作图:R语言ComplexHeatmap包做热图展示TCGA-BRCA数据集概况
|
数据采集 数据挖掘 Python
Python 零基础入门数据分析实战之数据集应用
本节选用的是 Python 的第三方库 seaborn 自带的数据集,该小费数据集为餐饮行业收集的数据,其中 total_bill 为消费总金额、tip 为小费金额、sex 为顾客性别、smoker 为顾客是否吸烟、day 为消费的星期、time 为聚餐的时间段、size 为聚餐人数。
207 0
Python 零基础入门数据分析实战之数据集应用
|
机器学习/深度学习 算法 数据挖掘
ML之FE:利用【数据分析+数据处理】算法对国内某平台上海2020年6月份房价数据集【12+1】进行特征工程处理(史上最完整,建议收藏)——附录
ML之FE:利用【数据分析+数据处理】算法对国内某平台上海2020年6月份房价数据集【12+1】进行特征工程处理(史上最完整,建议收藏)——附录
|
机器学习/深度学习 数据可视化 算法
ML之FE:利用【数据分析+数据处理】算法对国内某平台上海2020年6月份房价数据集【12+1】进行特征工程处理(史上最完整,建议收藏)
ML之FE:利用【数据分析+数据处理】算法对国内某平台上海2020年6月份房价数据集【12+1】进行特征工程处理(史上最完整,建议收藏)
ML之FE:利用【数据分析+数据处理】算法对国内某平台上海2020年6月份房价数据集【12+1】进行特征工程处理(史上最完整,建议收藏)
热门文章
最新文章
相关产品
机器翻译
推荐文章
更多