R语言学习笔记(1)数据结构

使用软件:RStudio, RGUI

R的数据类型:

  • 数值型Numeric,如100,0,-4.335
  • 字符型Character,如“China”
  • 逻辑性Logical,如TRUE,FALSE
  • 复数型,如2+3i
  • 因子型,表示不同类别
  • 特殊类型:NA(缺失值),NULL(空),NaN(非数值),Inf和-Inf(正无穷和负无穷)

样例代码:

age <- c(1,3,5,2,11,9,3,9,12,3)
weights <- c(4.4,5.3,7.2,5.2,8.5,7.3,6.0,10.4,10.2,6.1)
print(mean(weights))
print(sd(weights))
print(cor(age, weights))
plot(age, weights)

R不提供多行注释或块注释功能,但可以用if(FALSE){. .. }实现代码的注释

帮助函数

if(FALSE){打开帮助文档首页}
help.start()
if(FALSE){查看函数mean的帮助}
help("mean")
?mean
if(FALSE){以mean为关键字搜索帮助文档}
help.search("mean")
??mean
if(FALSE){函数mean的使用示例}
example("mean")
if(FALSE){列出当前已加载包中所含的所有可用示例数据集}
data()
R中的帮助函数

目录操作

if(FALSE){查看当前目录}
getwd()
if(FALSE){修改当前的工作目录为mydirectory}
setwd("mydirectory")
if(FALSE){列出当前工作空间中的对象}
ls()
if(FALSE){移除(删除)一个或多个对象}
rm("x")
if(FALSE){退出R}
q()
目录操作函数

包的操作

if(FALSE){安装包}
install.packages("gclus")
if(FALSE){载入包}
library(gclus)
if(FALSE){包的简短描述}
help(package="gclus")

R的数据结构:标量、向量(Vector)、矩阵(Matrix)、数组(Array)、数据框(Data Frame)和列表(List)。
按维度与内容的同质性可分为:

维度 均一(所有内容为同一类型) 非均一
一维 Vector 向量 List 列表
二维 Matrix 矩阵 Data Frame 数据框
三维 Array 数组 /

标量、向量

if(FALSE){标量的创建}
a <- 3
if(FALSE){向量的创建1}
a <- c(1,2,3,4,5)
a <- c("China", "USA", "Japan")
a <- c(FALSE, TRUE, FALSE, TRUE)
if(FALSE){向量的创建2,使用:,a=[1]  1  2  3  4  5  6  7  8  9 10}
a <- 1:10
if(FALSE){向量的创建3,使用seq()函数生成序列,a=[1] 1 3 5 7 9}
a <- seq(1,9,2)
if(FALSE){向量的创建4,使用rep()函数,生成重复序列,a=[1] 2 2 2}
a <- rep(2,3)
if(FALSE){向量的访问,下标从1开始}
a <- c(1,2,3,4,5,6,7)
a[3]
a[c(1,3,5)]
a[2:6]
a[which(a>2)]
向量使用

矩阵

if(FALSE){矩阵的使用,其中vector包含了矩阵的元素,nrow和ncol用以指定行和列的维数,dimnames包含了可选的、以字符型向量表示的行名和列名。选项byrow则表明矩阵应当按行填充(byrow=TRUE)还是按
列填充(byrow=FALSE),默认情况下按列填充。}
mymatrix <- matrix(vector, nrow=num_of_rows, ncol=num_of_cols, byrow=logical_value, dimnames=list(char_vector_rownames,char_vector_colnames))
if(FALSE){矩阵的创建1}
y <- matrix(1:20, nrow=5, ncol=4)
if(FALSE){矩阵的创建2}
cells <- c(1,26,24,68)
rnames <- c("R1","R2")
cnames <- c("C1","C2")
mymatrix <- matrix(cells, nrow=2, ncol=2, byrow=TRUE, dimnames = list(rnames, cnames))
if(FALSE){矩阵的创建3,按列排列}
x <- c(1:12)
dim(x) = c(3,4)
if(FALSE){矩阵的访问}
x <- matrix(1:20, nrow=4)
print(x[2,])
print(x[,2])
print(x[2,2])
print(x[3,c(4,5)])
矩阵使用

数组

if(FALSE){数组的使用,vector包含了数组中的数据,dimensions是一个数值型向量,给出了各个维度下标的最大值,而dimnames是可选的、各维度名称标签的列表}
myarray <- array(vector, dimensions, dimnames)
if(FALSE){数组的创建}
dim1 <- c("A1","A2")
dim2 <- c("B1","B2","B3")
dim3 <- c("C1","C2","C3","C4")
z <- array(1:24, c(2,3,4), dimnames=list(dim1,dim2,dim3))
if(FALSE){数组的访问}
z[,,3]
z[,2,3]
z[1,2,3]

数据框

if(FALSE){数据框的使用,列向量col1, col2, col3,… 可为任何类型(如字符型、数值型或逻辑型)。每一列的名称可由函数names指定,每一列的数据类型必须相同。}
if(FALSE){DataFrame是R语言中最常用的数据结构}
mydata <- data.frame(col1, col2, col3)
if(FALSE){数据框的创建}
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)
if(FALSE){数据框的访问}
patientdata[1:2]
patientdata[c("age","status")]
patientdata$age
if(FALSE){因子的使用}
patientID <- c(1,2,3,4)
age <- c(25,34,28,52)
diabetes <- c("Type1","Type2","Type1","Type1")
diabetes <- factor(diabetes)
status <- c("Poor","Improved","Excellent","Poor")
status <- factor(status, order=TRUE)
patientdata <- data.frame(patientID, age, diabetes, status)
summary(patientdata)
数据框使用

列表

if(FALSE){列表的使用,列表(list)是R的数据类型中最为复杂的一种。一般来说,列表就是一些对象(或成分,component)的有序集合。列表允许你整合若干(可能无关的)对象到单个对象名下。}
mylist <- list(object1,object2,...)
if(FALSE){列表的创建}
g <- "My First List"
h <- c(25,26,18,39)
j <- matrix(1:10, nrow=5)
k <- c("one","two","three","four")
mylist <- list(title=g, age=h, j, k)
if(FALSE){列表的访问}
mylist$age
mylist[[3]]
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,245评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,749评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,960评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,575评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,668评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,670评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,664评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,422评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,864评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,178评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,340评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,015评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,646评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,265评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,494评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,261评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,206评论 2 352

推荐阅读更多精彩内容