查看原文
其他

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

pythonic生物人 pythonic生物人 2022-09-11

"pythonic生物人"的第85篇分享

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


本文速览

更多精彩:pythonic生物人

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
  • 查看向量数据类型

  • 向量切片

a[c(14)]#提取a中的第一和第四个元素,向量中索引从1开始,区别于python从0开始
a[1:4]#提取1到4个元素#等价于a[c(1:4)]

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))
  • 矩阵切片

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

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

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

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)
  • 数据框切片

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

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

print('#提取age列')#$列名指定
print(patientdata$age)

4、R中数据导入|输出

  • R支持数据导入方式

  • R中数据Import/Export包

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

DBI (https://CRAN.R-project.org/package=DBI):#包名称及CRAN地址

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

同系列文章

Python可视化|Matplotlib&Seaborn36(完结篇)
R语言基础(一)
更多精彩,欢迎微信关注公众号:pythonic生物人

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存