R中数组,矩阵,数据框有啥区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R中数组,矩阵,数据框有啥区别相关的知识,希望对你有一定的参考价值。

参考技术A 在我的理解是
数组是一组类型相同的值。
矩阵就是一个多维数组。
数据框是一个特殊的对象,类似数据库里的表的概念。
数据框是由多个不同模式的不同变量组成的,

而变量分为连续型变量、名义型变量、有序型变量,

其中名义型变量和有序型变量在R中被称为因子。数据框的每一列并不都是因子。只有名义型和有序型的列才是因子。你可以使用函数str(数据框)来显示此数据本回答被提问者采纳

R语言基础-向量|矩阵|数组|数据框|数据IO|实用函数

"pythonic生物人"的第85篇分享R语言基础(2)-向量|矩阵|数组|数据框|数据IO|实用函数R语言基础(2)-向量|矩阵|数组|数据框|数据IO|实用函数

  • 本文梳理R语言数据结构:向量、矩阵、数据框;
  • 数据IO及实用函数。

R语言基础(2)-向量|矩阵|数组|数据框|数据IO|实用函数R语言基础(2)-向量|矩阵|数组|数据框|数据IO|实用函数


本文速览

更多精彩:

1、c()创建向量(Vector)
向量创建
查看向量数据类型
向量切片

2、matrix()创建矩阵(matrix)
语法
创建矩阵 
矩阵切片 

3、data.frame()创建数据框
语法
创建数据框
数据框切片

4、R中数据导入|输出
R支持数据导入方式
R中数据Import/Export包

5、R处理数据对象实用函数

1、c()创建向量(Vector)

  • 向量创建

a <- c(12536, -24)#创建向量a
a
R语言基础(2)-向量|矩阵|数组|数据框|数据IO|实用函数
  • 查看向量数据类型

R语言基础(2)-向量|矩阵|数组|数据框|数据IO|实用函数
  • 向量切片

a[c(14)]#提取a中的第一和第四个元素,向量中索引从1开始,区别于python从0开始
R语言基础(2)-向量|矩阵|数组|数据框|数据IO|实用函数
a[1:4]#提取1到4个元素#等价于a[c(1:4)]
R语言基础(2)-向量|矩阵|数组|数据框|数据IO|实用函数

2、 matrix()创建矩阵(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 行名和列名
byrow 按行填充(byrow=TRUE)按列填充(byrow=FALSE) ,默认情况下按列填充。
  • 创建矩阵

cells <- c(1,26,'aa',68)
rnames <- c("R1""R2")
cnames <- c("C1""C2")
mymatrix <- matrix(cells, nrow=2, ncol=2, byrow=TRUE, dimnames=list(rnames, cnames))
R语言基础(2)-向量|矩阵|数组|数据框|数据IO|实用函数
  • 矩阵切片

print('#取第一行')
print(mymatrix[1,])

print('#取第一列')
print( mymatrix[,1])

print('#取第一行,1,2列')
print(mymatrix[1,c(1,2)])
R语言基础(2)-向量|矩阵|数组|数据框|数据IO|实用函数

3、data.frame()创建数据框

  • 语法

mydata <- data.frame(col1, col2, col3,...)
其中的列向量col1、 col2、 col3等可为任何类型(如字符型、数值型或逻辑型)。每一列的名
称可由函数names指定。
  • 创建数据框

patientID <- c(1234)
age <- c(25342852)
diabetes <- c("Type1""Type2""Type1""Type1")
status <- c("Poor""Improved""Excellent""Poor")
patientdata <- data.frame(patientID, age, diabetes, status)
print(patientdata)
R语言基础(2)-向量|矩阵|数组|数据框|数据IO|实用函数
  • 数据框切片

print('#提取1,2列')
print(patientdata[1:2])#数字指定

print('#提取diabetes,status列')
print(patientdata[c("diabetes""status")])#列名指定

print('#提取age列')#$列名指定
print(patientdata$age)
R语言基础(2)-向量|矩阵|数组|数据框|数据IO|实用函数

4、R中数据导入|输出

  • R支持数据导入方式

  • R中数据Import/Export包

会涉及到如下多种包:
参考: https://mirrors.tuna.tsinghua.edu.cn/CRAN//doc/manuals/R-data.pdf

David A. James#包作者

dataframes2xls (https://CRAN.R-project.org/package=dataframes2xls):

Guido van Steen

foreign (https://CRAN.R-project.org/package=foreign):

Thomas Lumley, Saikat DebRoy, Douglas Bates, Duncan Murdoch and

Roger Bivand

gdata (https://CRAN.R-project.org/package=gdata):

Gregory R. Warnes

ncdf4 (https://CRAN.R-project.org/package=ncdf4):

David Pierce

rJava (https://CRAN.R-project.org/package=rJava):

Simon Urbanek

RJDBC (https://CRAN.R-project.org/package=RJDBC):

Simon Urbanek

RMySQL (https://CRAN.R-project.org/package=RMySQL):

David James and Saikat DebRoy

RNetCDF (https://CRAN.R-project.org/package=RNetCDF):

Pavel Michna

RODBC (https://CRAN.R-project.org/package=RODBC):

Michael Lapsley and Brian Ripley

ROracle (https://CRAN.R-project.org/package=ROracle):

David A. James

RPostgreSQL (https://CRAN.R-project.org/package=RPostgreSQL):

Sameer Kumar Prayaga and Tomoaki Nishiyama

RSPerl: Duncan Temple Lang

RSPython:

Duncan Temple Lang

RSQLite (https://CRAN.R-project.org/package=RSQLite):

David A. James

SJava: John Chambers and Duncan Temple Lang

WriteXLS (https://CRAN.R-project.org/package=WriteXLS):

Marc Schwartz

XLConnect (https://CRAN.R-project.org/package=XLConnect):

Mirai Solutions GmbH

XML (https://CRAN.R-project.org/package=XML):

Duncan Temple Lang


5、R处理数据对象实用函数

函 数              用 途
length(object)                 显示对象中元素/成分的数量
dim(object)                 显示某个对象的维度
str(object)                 显示某个对象的结构
class(object)                 显示某个对象的类或类型
names(object)                 显示某对象中各成分的名称
c(object, object,...)             将对象合并入一个向量
cbind(object, object, ...)         按列合并对象
rbind(object, object, ...)         按行合并对象
head(object)                 列出某个对象的开始部分
tail(object)                 列出某个对象的最后部分


参考资料

r-in-action-second-edition

同系列文章


更多精彩,欢迎微信关注公众号:

以上是关于R中数组,矩阵,数据框有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

R语言里面的向量指的是啥,和数组有啥分别?应用于啥上面?

r语言apply函数与tapply函数有啥区别

R语言中怎样将数据框转换成矩阵?

混淆矩阵和列联表有啥区别?

如何将r语言中矩阵转成c 中数组

R语言基础-向量|矩阵|数组|数据框|数据IO|实用函数