R笔记之《R语言之书-编程与统计》第一部分 语言(2)

前一篇记录了第一部分前4章的内容,接下来是5~8章的内容。这两天做笔记发现一个很好的点是,在自己看完一遍书,又在电脑上做记录再看一遍书,这样反反复复的看书和思考可以很快的去理解知识点。好记性不如烂笔头,何况在互联网时代,可以敲键盘来记录自己所看到的,真的是一个不错的方法。

  • 列表和数据框
  • 特殊值、类型和转换
  • 基本绘图
  • 读写文件

列表和数据框

列表可以包含数值型矩阵、逻辑型数组,字符串和因子变量,也可以包含其他列表。
创建列表、输出列表长度、提取列表中组件。例如:

> foo <- list(matrix(data=1:4,nrow=2,ncol=2),c(T,F,T,T),"hello")
> foo                   #创建了一个矩阵,逻辑向量,字符串
[[1]]
     [,1] [,2]
[1,]    1    3
[2,]    2    4

[[2]]
[1]  TRUE FALSE  TRUE  TRUE

[[3]]
[1] "hello"

> length(x=foo)
[1] 3                       #length函数检查列表中有几个组件

> foo[[1]]
     [,1] [,2]
[1,]    1    3
[2,]    2    4

> foo[[3]]
[1] "hello"              #用索引和中括号提取列表组件

names函数给列表中的元素命名。

> names(foo) <- c("mymatrix","mylogicals","mystring")
> foo                           #按顺序命名为这几个名称
$mymatrix
     [,1] [,2]
[1,]    1    3
[2,]    2    4

$mylogicals
[1]  TRUE FALSE  TRUE  TRUE

$mystring
[1] "hello"

数据框是使用data.frame函数来创建,以长度相等的向量形式提供数据。例如:

> mydata <- data.frame(person=c("Peter","Lois","Meg","Chris","Stewie"),age=c(42,40,17,14,1),sex=factor(c("M","F","F","M","M")))
> mydata
  person age sex
1  Peter  42   M
2   Lois  40   F
3    Meg  17   F
4  Chris  14   M
5 Stewie   1   M     
#创建了一个包含 person、age、sex的数据框

> mydata[2,2]
[1] 40                   #用中括号提取2行2列的元素

> mydata$age
[1] 42 40 17 14  1     
> mydata$age[2]
[1] 40                            #使用$符号也可以提取数据

使用stringsAsFactors=FALSE避免系统默认将字符串转换成因素

> mydata <- data.frame(person=c("Peter","Lois","Meg","Chris","Stewie"),age=c(42,40,17,14,1),sex=factor(c("M","F","F","M","M")),stringsAsFactors=FALSE)
> mydata
  person age sex
1  Peter  42   M
2   Lois  40   F
3    Meg  17   F
4  Chris  14   M
5 Stewie   1   M
> mydata$person
[1] "Peter"  "Lois"   "Meg"    "Chris"  "Stewie"      #person是字符串

可以使用rbind、cbind添加合并数据、也可以利用逻辑值提取数据

特殊值、类型和转换

无穷数用Inf 表示,因为是无穷数是数值型数据,所以Inf 只能与数值型向量相关,-Inf表示负无穷。

> foo <- Inf       #定义了单个无穷数对象
> foo
[1] Inf
> bar <- c(3401,Inf,3.1,-555,Inf,43)       #含有无穷数的数值型向量
> bar
[1] 3401.0    Inf    3.1 -555.0    Inf   43.0
> baz <- 90000^100          #无穷数
> baz
[1] Inf

NaN表示非数值,至于数值型观测值相关联,指一些计算的非预期结果,用is.nan函数检测是否存在NaN值。
NA值 是缺失值,即Not Available,NA值可以用于任何类型的数据,,用函数is.na来识别缺失值,na.omit函数删除所有NA值。
NULL是空值,is.null来检查元素是否为空值。

attributes函数输出任何对象的属性,用class函数提取特定属性,is.函数检查对象是特定的类别还是数据类型,其返回结果是逻辑值。用as.函数转换数据原有类型。

基本绘图

plot函数绘图,例如:

> foo <- c(1.1,2,3.5,3.9,4.2)
> bar <- c(2,2.2,-1.3,0,0.2)
> plot(foo,bar,type="b",main="My lovely plot",xlab="",ylab="",col=4,pch=8,lty=2,cex=2.3,lwd=3.3)   
#type 图的形式,main 标题,xlab,ylab 横纵坐标,col 颜色,pch 点的特征,lty线的类型,lwd线的宽度,cex点的大小
> plot(foo,bar,type="b",main="My lovely plot",xlab="",ylab="",col=6,pch=15,lty=3,cex=0.7,lwd=2)

用ggplot2包绘图,在后续会更详细的介绍。

读写文件

install.packages() 安装程序包,library函数加载程序包
使用read.table导入表格格式的文件,例如:

> mydatafile <- read.table(file="D:/R语言之书资源/8.2.1_mydatafile.txt",header=TRUE,sep=" ",na.strings="*",stringsAsFactors=FALSE)
#file 是文件名和文件位置的字符串,使用斜杠/,header是否使用表头,sep表示分隔符的字符串,na.strings表示缺失值的字符串,
> mydatafile
  person age sex funny age.mon
1  Peter  NA   M  High     504
2   Lois  40   F  <NA>     480
3    Meg  17   F   Low     204
4  Chris  14   M   Med     168
5 Stewie   1   M  High      NA
6  Brian  NA   M   Med      NA

使用file.choose()命令来查找文件
使用read.table、read.csv命令来导入office表格,首先要转换表格的格式,先在Excel中转换,再导入R中

> spread <- read.csv(file="D:\\R语言之书资源\\8.2.2_spreadsheetfile.csv",header=FALSE,stringsAsFactors=TRUE)
> spread
   V1  V2     V3
1  55 161 female
2  85 185   male
3  75 174   male
4  42 154 female
5  93 188   male
6  63 178   male
7  58 170 female
8  75 167   male
9  89 181   male
10 67 178 female

也可以读取网页中的数据,也可以使用R包forein读取统计软件中的数据文件。
写出文件用write.table,write.csv

入门生信最快方式请搜索生信技能树

  1. 生信技能树全球公益巡讲
    https://mp.weixin.qq.com/s/E9ykuIbc-2Ja9HOY0bn_6g
  2. B站公益74小时生信工程师教学视频合辑https://mp.weixin.qq.com/s/IyFK7l_WBAiUgqQi8O7Hxw
  3. 招学徒
    https://mp.weixin.qq.com/s/KgbilzXnFjbKKunuw7NVfw
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,783评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,360评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,942评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,507评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,324评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,299评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,685评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,358评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,652评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,704评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,465评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,318评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,711评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,991评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,265评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,661评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,864评论 2 335

推荐阅读更多精彩内容